【问题标题】:Redirect back to facebook app after accepting/denying permissions loop接受/拒绝权限循环后重定向回 Facebook 应用程序
【发布时间】:2013-10-17 11:26:25
【问题描述】:

我正在尝试找出一种方法,在用户与权限交互后重定向回应用所在的 facebook 页面(接受或拒绝无关紧要)。

我已经尝试并阅读了有关 redirect_uri(facebook sdk、php)的信息并使用了它。问题是当用户完成与应用权限的交互时,我不明白如何重定向一次。

if(!empty($signedRequest) && !empty($signedRequest['page']['id'])){
$page = $facebook->api($signedRequest['page']);
}
else
{
echo '<script>top.location.href = "'.$loginUrl.'"</script>';
}
//$redirect_uri = $page['link'] . '?sk=app_' . $facebook->getAppId() .'?ref=ts';

$redirect_uri =  "my_facebook_page_where_app_is";

$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'publish_actions',
'redirect_uri' => $redirect_uri
));

这当然有效并重定向回来。但它循环......永远。 我无法理解如何只重定向一次。有什么帮助吗?

【问题讨论】:

  • 你为什么要根据 signed_request 重定向到登录对话框?
  • 这就是问题所在。我不知道何时重定向回应用程序页面。所以我现在把它放在那里只是为了显示我的问题。
  • 好吧,您可以将 GET 参数放入 redirect_uri ... 如果已设置,意味着用户已从登录对话框重定向回来,请对其做出反应...
  • 嗯不确定我在关注你。如果我第一次重定向,应用程序会重新加载,检查是否签名请求并再次重定向,因为它已签名并循环。我能想到的另一个解决方案是使用 facebook-sdk js,并尝试使用弹出窗口和 ajax。
  • 我已经暗示,仅仅检查 signed_request 的存在是没有帮助的……

标签: php facebook facebook-php-sdk


【解决方案1】:
if(isset($_REQUEST['signed_request']))
{
   // User has already authorised your app
}
else
{
   header('Location:'.$redirect_uri);
}

【讨论】:

  • 这不是真的。在页面标签应用程序中,无论用户是否已经授权您的应用程序,您都会在初始加载时将签名请求发布到您的应用程序。
  • 那你能帮忙吗?解决最初的问题?因为有了这段代码我可以做到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 2011-08-12
  • 2018-01-09
  • 2017-09-06
  • 2012-06-07
相关资源
最近更新 更多