我試圖讓用戶頁面: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