问题:
在 Facebook 的身份验证流程中弃用 Offline_access 权限,在没有该许可的情况下检索长期访问令牌已成为一项挑战。尽管 Facebook 的文档指出服务器端 OAuth 令牌将长期有效,但事实并非如此。
解决方案:
Facebook 已更新 PHP SDK 以包含一个方法用于延长访问令牌的有效性。
更新了 SDK方法:
base_facebook.php 中添加了一个名为 setExtendedAccessToken 的公共函数。此函数返回一个有效期为 60 天的新访问令牌。
用法:
收到正常访问令牌后调用此函数。您可以使用 getAccessToken 公共函数来访问新令牌。
扩展访问令牌函数:
public function getExtendedAccessToken(){ try { $access_token_response = $this->_oauthRequest( $this->getUrl('graph', '/oauth/access_token'), array( 'client_id' => $this->getAppId(), 'client_secret' => $this->getAppSecret(), 'grant_type' => 'fb_exchange_token', 'fb_exchange_token' => $this->getAccessToken() ) ); } catch (FacebookApiException $e) { return false; } if (empty($access_token_response)) { return false; } $response_params = array(); parse_str($access_token_response, $response_params); if (!isset($response_params['access_token'])) { return false; } return $response_params['access_token']; }
注意:
以上是Offline_Access 弃用后如何延长 Facebook 访问令牌的有效性?的详细内容。更多信息请关注PHP中文网其他相关文章!