0

내 웹 사이트에 API를 통해 google 드라이브에 업로드 파일 업로드 버튼이 있습니다.google api 클라이언트가 작동하지 않는 토큰을 새로 고침

$auth_code  = GOOGLEDRIVE_AUTH_CODE; 
$access_token = GOOGLEDRIVE_ACCESS_TOKEN; 
$refresh_token = GOOGLEDRIVE_REFRESH_TOKEN; 
$client_id  = 'Google_App_Client_ID'; 
$client_secret = 'Google_App_Client_Secret'; 
$redirect_uri = 'Redirct_Url'; 

$client = new Google_Client(); 
$client->setClientId($client_id); 
$client->setClientSecret($client_secret); 
$client->setRedirectUri($redirect_uri); 
$client->setAccessType('offline'); 
$client->setApprovalPrompt('force'); 
$client->addScope("https://www.googleapis.com/auth/drive"); 
$service = new Google_Service_Drive($client); 

if (isset($access_token) && $access_token) { 
    $client->setAccessToken($access_token); 
    if ($client->isAccessTokenExpired()) { 
     $refresh_token = $client->getRefreshToken(); 
     $client->refreshToken($refresh_token); 
     $access_token = $client->getAccessToken(); 
     $co->save('GDRIVE_ACCESS_TOKEN',$access_token); 
     $co->save('GDRIVE_REFRESH_TOKEN',$refresh_token); 
    } 
} else { 
    $authUrl = $client->createAuthUrl(); 
} 

이 줄은

$client->refreshToken($refresh_token); 

오류가 발생합니다 : 여기

내 코드입니다 "오류 발생으로 OAuth2 토큰을 새로 고침, 메시지 : '{"오류 ":"invalid_grant "}'"

Token Refresh가 갑자기 작동하지 않는 것처럼 들리는 오류 메시지를 읽으십시오. 말했듯이,이 업로드 도구는 몇 달 동안 잘 작동했습니다.

아이디어가 있으십니까?

덕분에, Midhun

답변

0

Invalid_grant

  1. 서버의 시계가 NTP와 동기화되지 않습니다. (해결 방법 : 서버 시간을 잘못 확인하면 서버 시간을 확인하십시오.)

그렇지 않으면 사용자에게 다시 인증을 요청하는 것 외에는 수정 사항이 없습니다. 새로 고침 토큰의 가능한 원인이 만료되었습니다.

  1. 사용자가 귀하의 액세스 권한을 취소했습니다.
  2. 새로 고침 토큰을 6 개월 동안 사용하여 새 액세스 토큰을 요청하지 않았습니다.
  3. 새로 고침 토큰 제한을 초과했습니다. 응용 프로그램은 여러 개의 새로 고치는 토큰을 요청할 수 있습니다. 예를 들어 사용자가 여러 컴퓨터에 응용 프로그램을 설치하려는 경우에 유용합니다. 이 경우 각 설치마다 하나씩 두 개의 새로 고치기 토큰이 필요합니다. 새로 고침 토큰 수가 제한을 초과하면 이전 토큰이 유효하지 않게됩니다. 응용 프로그램이 유효하지 않은 새로 고침 토큰을 사용하려고하면 invalid_grant 오류 응답이 반환됩니다. OAuth 2.0 클라이언트의 각 고유 한 쌍에 대한 한도이며 25 개의 새로 고침 토큰입니다 (이 제한은 변경 될 수 있음에 유의하십시오). 응용 프로그램이 동일한 클라이언트/계정 쌍에 대한 새로 고치기 토큰을 계속 요청하면 26 번째 토큰이 발행되면 이전에 발행 된 첫 번째 새로 고침 토큰이 유효하지 않게됩니다. 27 번째 요청 된 새로 고침 토큰은 이전에 발행 된 두 번째 토큰을 무효화합니다.