页面选项卡中的Facebook应用程序 - 如何获取回调URL

时间:2011-05-06 14:39:57

标签: php facebook

我在这里遇到了一些问题。

当您将应用加载到标签页并要求获得许可时,您需要向其发送回调网址。

回调网址是一项任务,因为在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>,这基本上意味着我无法构建回调网址...

当页面加载然后重新加载页面时,是否有人知道更好的方式或不同的方式立即询问权限?

2 个答案:

答案 0 :(得分:5)

看来你有点困惑,这里有一些观点:

  1. 您的回调(重定向)网址应该是您在应用程序设置中指定的标签网址的相对(或相同)。类似的东西:

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

    所以不需要页面ID。

  2. 即使页面ID ,您仍会在signed_request中收到它(即使未经授权)! 请仔细阅读Facebook documentation相关部分:
  3.   

    当用户选择您的页面标签时,您   将收到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 ,除非已登录的用户不允许您使用该应用,否则将无法通过。