Offline_access 지원 중단에도 불구하고 액세스 토큰 유효성을 확장하는 방법
문제:
Facebook의 지원 중단 오프라인 액세스 권한으로 인해 획득할 수 있는 능력이 방해를 받았습니다. 수명이 긴 액세스 토큰. 서버 측 OAuth 토큰이 오랫동안 유지된다는 문서가 있음에도 불구하고 이는 사실이 아닙니다.
답변:
편집(2012년 8월 14일) ):
공식 Facebook PHP SDK가 업데이트되어 개정된 버전을 소개합니다. setExtendedAccessToken 함수. 잠재적인 세션 중복 문제를 완화하려면 함수 실행 시 현재 세션을 종료해야 합니다. 또한 새로운 액세스 토큰을 내부적으로 저장하므로 공개 getAccessToken 함수를 통해 검색할 수 있습니다. Facebook PHP SDK GitHub 페이지에서 최신 SDK를 획득하세요.
원래 답변:
60에 대한 액세스 권한을 부여하는 새로운 공개 함수가 base_facebook.php에 추가되었습니다. -일 갱신 가능한 액세스 토큰. 정상적인 액세스 토큰 수신 이후에 이 기능을 구현하면 충분할 수 있습니다. 또한 개발자 앱의 고급 설정에서 "offline_access 사용 중단"을 활성화하는 것이 필요하다고 생각됩니다.
facebook 클래스 내의 base_facebook.php에 다음 코드를 삽입하고 함수를 호출하세요.
public function getExtendedAccessToken(){ try { // need to circumvent json_decode by calling _oauthRequest // directly, since response isn't JSON format. $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) { // most likely that user very recently revoked authorization. // In any event, we don't have an access token, so say so. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!