나는 서버 측 요청으로부터 60 일 동안 페이스 북 액세스 토큰을 얻으려고합니다. How to extend access token validity since offline_access deprecation 육십일 액세스 토큰을 요청 :Facebook의 확장 액세스 토큰이 작동하지 않습니다.하지만 모든 것이 정상적으로 보입니다 (?)
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'),
$params = array( 'client_id' => $this->getAppId(),
'client_secret' => $this->getApiSecret(),
'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'];
}
Unfortunanely을 여전히 사용자가 내가 getAccessToken() 페이스 북 SDK의 기능을 통해 그 후 액세스 토큰을 확인에 loged 후 나는 여기 어딘가에 발견 getExtendedAccessToken는()를 사용 2 시간 후에 내 액세스 토큰이 만료됩니다. 따라서이 또한 시도해 보았습니다.
public function getSimpleExtendedAccessToken(){
$request = 'https://graph.facebook.com/oauth/access_token?
client_id='. $this->getAppId().
'&client_secret=' .$this->getApiSecret().
'&grant_type=fb_exchange_token
&fb_exchange_token=' .$this->getAccessToken();
$response = file_get_contents($request);
$params = null;
parse_str($response, $params);
return $params['access_token'];
}
이 항목도 2 시간 후에 만료됩니다.
어레이
([access_token이 => AAAFM5sO7 [...] => 4897 [만료])로 : I 체크하지만 거기에 쓰여진 제 함수에서 배열 $params
내부 것이었다 getAccessToken()
에서 첫 번째, 두 번째 행 getExtendedAccessToken()
하나 getSimpleExtendedAccessToken()
에서 세번째 : I는 수신 된 모든 액세스 토큰이 동일한
(그 부분은 "AAAFM5sO7[...]
"는 물론 제 액세스 토큰 번호).
확장 액세스 토큰에 대해 addtionaly를 점점 더 많이 요구할 때 만료 번호는 갱신되지 않지만 카운트 다운되며 Facebook 문서의 관점에서 보면 정확합니다. 요청할 수 없기 때문에 매분마다 새로운 액세스 토큰을 얻을 수 있지만 왜 60 일간 액세스 토큰을 얻을 수 없습니까?
내가 조금 흥분했기 때문에 아무도 도와 줄 수 있습니까?
'try' /'catch' 블록에서 오류를 잡을만한 가치가 있습니다. 텍스트 파일에 저장하십시오. 나는 Facebook 샘플에서'error_log ($ e)'를 그냥 사용한다고 생각한다. –
첫 번째 함수'getExtendedAccessToken()'에서 액세스 토큰을 받았기 때문에 false가 아니라'try/cach'의 오류 섹션에 표시되어 있으므로 그렇게 생각하지 않습니다. 또한 두 번째 함수'getSimplyExtendedAccessToken()'은 나에게 유효한 액세스 토큰을 준다.이 두번째 함수는'try/cach' 섹션을 가지고 있지 않다. – Ziemo
... 아무도 어떻게이 문제를 해결하는지 안다 ?? – Ziemo