我在这里遇到了一些问题。
当您将应用加载到标签页并要求获得许可时,您需要向其发送回调网址。
回调网址是一项任务,因为在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>
,这基本上意味着我无法构建回调网址...
当页面加载然后重新加载页面时,是否有人知道更好的方式或不同的方式立即询问权限?
答案 0 :(得分:5)
看来你有点困惑,这里有一些观点:
您的回调(重定向)网址应该是您在应用程序设置中指定的标签网址的相对(或相同)。类似的东西:
http://www.example.com/canvas/tab/index.php
所以不需要页面ID。
signed_request
中收到它(即使未经授权)!
请仔细阅读Facebook documentation相关部分:当用户选择您的页面标签时,您 将收到
signed_request
一个额外的参数 参数page
。这个参数 包含一个id
的JSON对象( 当前页面的页面ID),admin
(如果用户是该页面的管理员), 和liked
(如果用户喜欢的话 页)。与Canvas页面一样,你会 没有收到所有用户信息 可以访问您的应用程序signed_request
直到用户 授权您的应用。
所以你不会收到的是用户ID而不是页面ID,这是很明显的,因为管理员“允许”应用程序。
希望这能为你解决问题。
答案 1 :(得分:1)
使用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 ,除非已登录的用户不允许您使用该应用,否则将无法通过。