>백엔드 개발 >PHP 튜토리얼 >Offline_access 지원 중단 후 수명이 긴 Facebook 액세스 토큰을 얻는 방법은 무엇입니까?

Offline_access 지원 중단 후 수명이 긴 Facebook 액세스 토큰을 얻는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-29 07:02:14489검색

How to Obtain Long-Lived Facebook Access Tokens After Offline_access Deprecation?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.