从 2.2 升级到 2.3 后排查 Facebook Graph API 问题
问题:
用户遇到 Facebook Graph API 请求不返回结果或不正确的问题从版本 2.2 升级到 2.3 后的数据。
原因:
问题源于 Facebook API 版本 2.3 中 OAuth 访问令牌响应格式的更改。现在,响应以有效的 JSON 格式返回,而不是 URL 编码。
解决方案:
要解决此问题,需要进行以下更改:
将 OAuth 访问令牌响应解析为 JSON:
在getAccessTokenFromCode 函数,更新代码以将访问令牌响应解析为 JSON:
$response = json_decode($access_token_response); if (!isset($response->access_token)) { return false; } return $response->access_token;
使用 JSON 响应扩展访问令牌:
同样,将 setExtendedAccessToken 函数更新为使用 JSON 响应:
// ... // Set access token using JSON response $response = json_decode($access_token_response); if (!isset($response->access_token)) { return false; } $this->setPersistentData( 'access_token', $response->access_token );
检索用户生日:
在 2.3 版本中,用户的生日不再包含在 Graph API 返回的默认字段中。要检索生日,请在请求中显式指定“生日”字段:
https://graph.facebook.com/v2.3/{$user_id}?fields=id,name,birthday
实施这些更改后,Graph API 应按版本 2.3 中的预期运行。
以上是为什么从 v2.2 升级到 v2.3 后我的 Facebook Graph API 请求无法正常工作?的详细内容。更多信息请关注PHP中文网其他相关文章!