在页面选项卡中的Facebook应用程序 - 如何获得回调URL
我在这里有点捉摸22的情况。在页面选项卡中的Facebook应用程序 - 如何获得回调URL
当你的应用程序加载到一个标签并要求权限时,你需要发送一个回调url。
回调URL是有点使命,因为一个页面http://www.facebook.com/pages/<PAEG NAME>/<PAGE ID>?sk=app_<APP ID>
获得<PAGE ID>
是把它弄出来的签名的请求的唯一途径上:
parse_signed_request($_REQUEST['signed_request'], $APPSecret)
,你只能做用户时已经获得许可。并且您需要该ID才能获得<PAGE NAME>
,这意味着我无法构建回调url ...
有谁知道更好的方法或不同的方式来在页面加载时立即询问权限,然后重新加载页面?
看来你是一个有点糊涂,这里有几点:
-
你的回调(重定向)的网址应该是相对的(或相同)在应用程序中设置指定标签网址。例如:
http://www.example.com/canvas/tab/index.php
所以不需要页面id。
- 即使页面ID是而不是需要,您仍然会在
signed_request
中收到它(即使没有授权)!
仔细阅读Facebook documentation相关部分:
当用户选择你的页面标签,你会 收到
signed_request
参数与一个额外 参数,page
。此参数 包含有id
(当前页面的 页ID)JSON对象,admin
(如果用户页面的管理), 和liked
(如果用户喜欢 页)。与Canvas页面一样,您将不会收到您的应用在signed_request
中可访问的所有用户信息 ,直到用户 授权您的应用。
那么,你会不会收到的东西是用户ID不是页面ID这是因为管理员“允许”应用那种明显。
希望这会为你解决问题。
使用JavaScript SDK
http://developers.facebook.com/docs/reference/javascript/
,并使用此对话框允许
http://developers.facebook.com/docs/reference/javascript/FB.login/
这种方式,你甚至都不需要刷新。
此外,即使没有用户允许,您也可以在signed_request中获得page_id。您正在讨论user_id和oauth_token除非已登录的用户不允许您的应用程序,否则它将无法通过。