Facebook Graph API 2.3 解决问题
Graph API 2.3 升级带来了一些意想不到的问题。无法检索 API 响应和丢失用户数据是最常见的问题。然而,解决这些问题的方法在于了解 2.3 版本中引入的更改。
响应格式更改
2.3 版本更改了“oauth/ access_token”端点。它现在返回有效的 JSON,而不是 URL 编码的数据。此更改会影响 Facebook SDK 3.2.2 中的访问令牌解析机制。
解决方案
要纠正此问题,您必须修改 SDK 中的“getAccessTokenFromCode”函数将响应解析为 JSON。下面更新的代码演示了此修复:
$response = json_decode($access_token_response); if (!isset($response->access_token)) { return false; } return $response->access_token;
其他更改
public function setExtendedAccessToken() { try { // Get extended access token. $access_token_response = $this->_oauthRequest( $this->getUrl('graph', '/oauth/access_token'), $params = array( 'client_id' => $this->getAppId(), 'client_secret' => $this->getAppSecret(), 'grant_type' => 'fb_exchange_token', 'fb_exchange_token' => $this->getAccessToken(), ) ); } catch (FacebookApiException $e) { // User revoked authorization. return false; } if (empty($access_token_response)) { return false; } $response = json_decode($access_token_response); if (!isset($response->access_token)) { return false; } $this->destroySession(); $this->setPersistentData( 'access_token', $response->access_token ); }
通过实施这些更新和修改,您可以解决 Facebook Graph API 2.3 面临的问题。
以上是如何修复 Facebook Graph API 2.3 的访问令牌和丢失用户数据问题?的详细内容。更多信息请关注PHP中文网其他相关文章!