2013-02-21 5 views
1

현재 내 Google 캘린더와 상호 작용할 수있는 간단한 원시 Python 응용 프로그램을 devlopping하고 있습니다. 이를 위해 Google Python 라이브러리 덕분에 Google Calendar API를 처음으로 사용하고 있습니다.Python으로 Google 캘린더 API에 액세스

그러나 설명서에도 불구하고 내 캘린더에 새 일정이 삽입되어 교착 상태에 빠졌습니다. 여기에 연결하고 내 요청 실행하는 내 코드의 일부이다 :

import sys 
... 
import httplib2 
from apiclient.discovery import build 
from oauth2client.file import Storage 
from oauth2client.client import AccessTokenRefreshError 
from oauth2client.client import flow_from_clientsecrets 
from oauth2client.tools import run 

... 

flow = flow_from_clientsecrets('client_secrets.json', 
    scope='https://www.googleapis.com/auth/calendar', 
    redirect_uri='http://localhost') 

storage = Storage('credentials.dat') 
credentials = storage.get() 
if credentials is None or credentials.invalid: 
    credentials = run(flow, storage) 

http = httplib2.Http() 
http = credentials.authorize(http) 
service = build('calendar', 'v3', http=http) 

try: 
    event = { 
    "start": "2013-02-20T09:00:00.000+01:00", 
    "end": "2013-02-20T11:00:00.000+01:00", 
    "summary": "New event", 
    "location": "Paris, FRANCE" 
    } 
    service.events().insert(calendarId='primary', body=event).execute() 
    print "END" 
except AccessTokenRefreshError: 
    print ('Credentials have been revoked') 

가 실행되면, 그건 내가 가지고있는 작업은 다음과 같습니다

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "usageLimits", 
    "reason": "dailyLimitExceededUnreg", 
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.", 
    "extendedHelp": "https://code.google.com/apis/console" 
    } 
    ], 
    "code": 403, 
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup." 
} 
} 

나는 포함, 지금까지 많은 것들을 시도 한 모든 Google 캘린더 API의 참조 문서에서 찾은 코드 샘플은 변경되지 않았습니다.

미리 도움을 주셔서 감사합니다.

+0

당신은 https://code.google.com/apis/console에서 API 계정에 가입 한 적이 있습니까? –

+0

물론입니다. 나는 Google 문서에서 몇 가지 샘플 코드를 사용해 보았습니다. – aseure

답변

0

사실상 동일한 코드로 동일한 문제가 발생했습니다. 이 줄을 client_secrets.json 파일에 추가하십시오. "access_type": "offline"

이렇게하면 한 시간 후에 만료 토큰이 아닌 새로 고침 토큰을 다시 얻을 수 있습니다. 여기

상세 사항 : Google Calendar API v3 - How to obtain a refresh token (Python)

+0

또한 기존의 모든 credentials.dat 파일을 제거하고이를 사용하려면 새로운 client_secrets.json 매개 변수를 사용하여 액세스 권한을 다시 부여해야합니다. –

+0

오늘 (9/24/14) flow_from_clientsecrets를 사용하여 새로 고침 토큰을 사용할 수 없지만 OAuth2WebServerFlow와 함께 제대로 작동합니다. 참고로 – grokpot

관련 문제