在页面选项卡中的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 ...

有谁知道更好的方法或不同的方式来在页面加载时立即询问权限,然后重新加载页面?

看来你是一个有点糊涂,这里有几点:

  1. 你的回调(重定向)的网址应该是相对的(或相同)在应用程序中设置指定标签网址。例如:

    http://www.example.com/canvas/tab/index.php 
    

    所以不需要页面id。

  2. 即使页面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_idoauth_token除非已登录的用户不允许您的应用程序,否则它将无法通过。