2016-11-10 2 views
2

많은 유사한 질문이 있습니다. 'invalid_grant'가 Google api에서 얻은 유일한 '답변'이지만, 모두 오래된 것입니다. 같은 메시지에.OAuth2 토큰을 새로 고침하는 중 오류가 발생했습니다. @ Google_CalendarServices (PHP)

이상한 부분은이 '물건'이 2 일 전에는 작동하지 않는다는 것입니다. Google CRM에서는 GoogleAccount와 관련된 Google 캘린더로 회의를 예약합니다. 이제 우리는 지난 2 일 동안 문제가 발생 했었고 결코 전에는 발생하지 않았습니다.

응용 프로그램은 다음과 같이 실패

 
Google_HttpRequest Object 
(
    [batchHeaders:Google_HttpRequest:private] => Array 
     (
      [Content-Type] => application/http 
      [Content-Transfer-Encoding] => binary 
      [MIME-Version] => 1.0 
      [Content-Length] => 
     ) 

    [url:protected] => https://accounts.google.com/o/oauth2/token 
    [requestMethod:protected] => POST 
    [requestHeaders:protected] => Array 
     (
      [content-type] => application/x-www-form-urlencoded 
      [content-length] => 196 
     ) 

    [postBody:protected] => client_id=111111111.apps.googleusercontent.com&client_secret=secretSECTRETsecretSECRET&refresh_token=1%2FveryLONGtokenSTRINGhafbuaADDFR&grant_type=refresh_token 
    [userAgent:protected] => Google Calendar PHP Starter Application google-api-php-client/0.6.0 
    [responseHttpCode:protected] => 400 
    [responseHeaders:protected] => Array 
     (
      [content-type] => application/json; charset=utf-8 
      [cache-control] => no-cache, no-store, max-age=0, must-revalidate 
      [pragma] => no-cache 
      [expires] => Mon, 01 Jan 1990 00:00:00 GMT 
      [date] => Thu, 10 Nov 2016 01:05:15 GMT 
      [x-content-type-options] => nosniff 
      [x-frame-options] => SAMEORIGIN 
      [x-xss-protection] => 1; mode=block 
      [server] => GSE 
      [alt-svc] => quic=":443"; ma=2592000; v="36,35,34" 
      [accept-ranges] => none 
      [vary] => Accept-Encoding 
      [transfer-encoding] => chunked 
     ) 

    [responseBody:protected] => { 
    "error" : "invalid_grant" 
} 
    [accessKey] => 
) 

것은 그래, 우리는 이전 버전을 사용하지 새로운 것을 :

Fatal error: Uncaught exception 'Google_AuthException' with message 'Error refreshing the OAuth2 token, message: '{"error" : "invalid_grant";} 

Stack trace: 

#0 /path/to/plugins/google-api-php-client/src/auth/Google_OAuth2.php(240): Google_OAuth2->refreshTokenRequest(Array) 
#1 /path/to/plugins/google-api-php-client/src/auth/Google_OAuth2.php(217): Google_OAuth2->refreshToken('1/ourtoken...') 
#2 /path/to/plugins/google-api-php-client/src/service/Google_ServiceResource.php(167): Google_OAuth2->sign(Object(Google_HttpRequest)) 
#3 /path/to/plugins/google-api-php-client/src/contrib/Google_CalendarService.php(494): Google_ServiceResource->__call('insert', Array) 

이 실제 HTTP 응답입니다. 예, 계정이 실시간입니다. 삽입하려는 캘린더가 있습니다. 어떤 특권이나 암호도 변경/재설정되지 않았습니다. 우리는 우리 달력을 모두 시험해 보았습니다. 전혀 성공하지 못했습니다. 그리고 개발자 키를 사용하지 않고 오프라인으로 액세스 유형을 설정하고 서버 시간을 동기화하는 등의 사소한 변경/해킹도 시도했습니다 ...

사실 파산되기 전에 모든 작업을 수행하지 않았습니다. 따라서 한 가지 질문이 있습니다. Google이 행동/코드 또는 기타에서 뭔가를 변경 했습니까? 아니면 (deprecated/deleted 함수처럼) 뭔가를 놓쳤습니까? 내 대학의

편집 # 1

하나는 사실에 뭔가를 변경했다. (편집 섹션 끝 부분에 대한 자세한 내용)

우리는 하나의 '기본'Google 계정, 위트 개발자 키와 clientid 및 모든 것을 가지고 있으며이 계정에도 1 개의 캘린더가 있습니다.

우리 동료보다 여러 다른 Google 계정이 있습니다. 기본 캘린더에서 캘린더로, 또는 그 반대로 부여합니다. Google의 CMS에서는 동료 캘린더 중 하나에 일정 (따라서 Google_CalendarService에 삽입)을 추가하려고합니다.

우리 동료 중 한 명이 직장을 그만 두었고 대학생이 HIS 암호를 변경합니다. 그리고 교부금이 제거되었습니다. 월요일 16시에 일어 났고 화요일 아침에 첫 번째 오류가 발생했습니다. 이 하나의 Google 계정의 변경이 다른 모든 사람의 행동에 영향을 미칠 수 있습니까? 메인 캘린더 계정의 동작 ???

- EDIT 번호의 끝은 사람이 이런 비슷한 일을 경험하고, 몇 가지 조언을주지하시기 바랍니다 해결하기 위해 관리 1

합니다. 고맙습니다!

+0

Gmail 범위 중 하나를 사용하고 있습니까? 최근에 사용자가 비밀번호를 변경했을 가능성이 있습니까? "구글은 행동/코드 등에서 뭔가를 바 꾸었습니까?" 나는 확실하지 않지만 지난 몇 주 동안 많은 질문을 보았습니다. 나는 Google 연락처를 확인하고있다. – DaImTo

+0

안녕하세요 @DaImTo, 의견을 보내 주셔서 감사합니다. 우리는 어떤 범위를 명시 적으로 정의하지 않고, 사용법에 대한 약간의 정보를 제공하기 위해 설명을 편집 할 것입니다. 귀하의 Google 사람으로부터 피드백은 아주 좋을 것입니다. 건배 – solotherm

+0

좀 더 명확히하겠습니다. 사용자를 인증 할 때 최소한 Google 캘린더 범위를 요청해야합니다. 다른 권한을 요청하고 있습니까? – DaImTo

답변

0

모두에게 좋은 소식입니다.

무한 파기 후에 시도한 후 &이 실패했습니다. Google에서 이전 액세스 토큰을 실제로 차단했다는 것을 알았습니다. 어쩌면 암호 변경과 우리 측으로부터의 권한 부여 제거가 있었을 것입니다. 어쩌면 전 동료가 무언가를 취소하거나 재설정하려했을 수도 있습니다. 그러나 토큰은 더 이상 활성화되지 않았습니다.

나는 우리의 API 자격 증명으로 연결을 설정 한 OAuth2를 놀이터에 몇 가지 작은 challanges 후

하고있어 새로운 연결 기본 설정 (새 액세스 토큰과 새로운 새로 고침 토큰)

특별 감사 밖으로 큰 소리 지적을 위해 @DaImTo에게 아마도이 문제를 일으키는 것은 비활성/오래된 토큰 일 것입니다.

@Google : 의미있는 오류 메시지와 오류 설명을 추가하십시오. '부전공적인'문제를 해결하기 위해 2-3 분의 시간이 걸리지 만 시간이 오래 걸리면 훨씬 더 시원합니다.

이 게시물이 앞으로 누군가에게 도움이되기를 바랍니다. 평화!

1

2016년 11월 17일 업데이트 :

우리는 제거되지 일부 토큰 결과 문제를 발견했다. 우리는 그것이 다시 일어나지 않도록하기 위해 노력하고 있습니다. 불행히도 삭제 된 토큰을 복원 할 방법이 없으며 사용자가 다시 인증해야합니다.


Google (Google Identity 팀)은 다른 몇몇 개발자도 Google에 문의했기 때문에 문제를 조사하고 있습니다. 디버깅 속도를 높이기 위해 내 G + 프로필을 통해 IM을 통해 정보를 얻을 수 있고 조사 할 수 있습니까?

"Google이 행동/코드 등에서 뭔가를 변경 했습니까?"대답은 의도적 인 변경이 아니었다는 것입니다.

+0

이 문제에 대한 나의 추적은 모두 그 중 일부가 아니라 임의의 하위 집합입니다. 대부분의 경우 새로 워진 토큰은 갑자기 작동하지 않기 적어도 2 주 전에 사용되었습니다. 나는 아직 그것을 재창조 할 수 없었다. 와일드 추측은 재전송 시간 변경과 관련이있을 수 있습니까? 그것은 이전에 결코 문제가 아니었지만. – DaImTo

+0

@nvnagr 행 아웃에 초대장을 보냈습니다. 원하던 것이 있는지 확실하지 않았습니다. 돈 토큰이 하나 더 있다면 솔직히 말해줘. 하나의 계정이 메인 시스템에 통합되어 있으며 다른 캘린더에 이벤트를 삽입하려고합니다. -> 캘린더 당 1 토큰 또는 1 토큰 이상입니까? 하지만 그들 중 누구도 일하고 ​​있지 않습니다 - 심지어 메인 계정의 캘린더에 이벤트를 삽입 할 수 없습니다. (같은 계정의 캘린더를 말합니다. 새 Google_Client() 인스턴스를 수행 중입니다. – solotherm

+0

Elzo,이 질문은 기존의 "좋은"답변이 아니라 비슷한 문제로이 질문을 본 다른 개발자에게도 문의 할 수 있습니다 나를. 이 질문에 대한 다른 대답은 정확하지 않습니다.Google 팀에서 Google에서 OAuth 서비스를 실행하고 있다고 말할 수 있습니다. 문제를 조사한 후에이 답변을 수정하겠습니다. – nvnagr

0

내가 만든 이전 앱에서 동일한 문제가 발생했습니다. 클라이언트 보안 및 개발자 키를 다시 생성하여 앱이 다시 작동하도록하면 안전하지 않은 다른 작업은 실패합니다. 슬프게도 낭비되는 아침.