我试图让用户页面:Facebook的signed_request饼干坚持错误的代码
<?php
try {
$pages = $facebook->api('/me/accounts?fields=id,name');
if (isset($pages['data'])) {
$this->assign('pages', $pages['data']);
$this->pages = $pages['data'];
}
} catch (\FacebookApiException $e) {
$loginUrl = $facebook->getLoginUrl(
array(
'redirect_uri' => $this->container->getParameter('home_url'),
'scope' => 'email,manage_pages'
)
);
echo '<script type="text/javascript">top.location.href = "'.$loginUrl.'";</script>';
exit;
}
但我跳进无尽的重定向循环。经过一番研究,我发现PHP SDK GET是从API的错误getAccessTokenFromCode
方法。 $access_token_response
变量是:
{"error":{"message":"This authorization code has expired.","type":"OAuthException","code":100}}
PHP SDK需要从COOKIE code
值。问题是fbsr_{app_id}
未刷新,并且它仍包含相同的代码。这就是无限循环的原因。
我能做些什么来解决这个问题。我正在考虑删除fbsr_{app_id}
Cookie,但看起来很奇怪。为什么SDK不为我处理?
我知道你找到了解决这个老问题的方法,但这绝对是一个问题。即使在删除该cookie后,JS SDK仍然会生成一个带有先前使用的代码的signed_request。我保留意义,创造一个可重现的场景并向他们报告错误。刚刚在尝试推送应用程序的第11个小时中遇到它。 – rmarscher 2013-09-20 20:55:33