Google 캘린더 API를 사용하여 Google App Engine 앱 내에서 단일 발생 이벤트를 만듭니다.Google 캘린더 API 생성 이벤트는 201을 반환하지만 이벤트가 생성되지 않습니다.
이event = {"data":{
"title": "Test Event",
"details": "Details of test event",
"transparency": "opaque",
"status": "confirmed",
"location": "My Place",
"when": [{
"start": "2013-03-05T15:00:00.000Z",
"end": "2013-03-05T17:00:00.000Z"
}]
}}
내가 이벤트를 추가하기 위해 사용하고 코드입니다 : 이벤트가
def sendGCalEvent(self, event):
scope = "https://www.google.com/calendar/feeds/"
authorization_token, _ = app_identity.get_access_token(scope)
logging.info("Using token %s to represent identity %s",
authorization_token, app_identity.get_service_account_name())
payload = simplejson.dumps(event)
response = urlfetch.fetch(
"https://www.google.com/calendar/feeds/default/private/full",
method=urlfetch.POST,
payload=payload,
headers = {"Content-Type": "application/json",
"Authorization": "OAuth " + authorization_token})
if response.status_code == 201:
result = simplejson.loads(response.content)
logging.info("Status code was %s, and the returned event looks like %s", response.status_code, result)
return
raise Exception("Call failed. Status code %s. Body %s",
response.status_code, response.content)
모든 것이 작동하는 것 같다, 그것은 확인 인증
json으로 인코딩 된 이벤트는 다음과 같습니다 게시 한 후 201 개의 응답과 달력에서 추가 된 필드가있는 JSON 이벤트가 표시됩니다.
이벤트가 만들어지지 않지만 내 캘린더에 표시되지 않습니다. 반환 된 이벤트 데이터의 '대체 링크'입력란에있는 URL로 이동하면 내 캘린더에 '이벤트가 없습니다.'라는 오류 메시지가 표시됩니다.
이 문제에 대한 도움은 매우 감사하겠습니다. 나는 Google API에 익숙하지 않기 때문에 분명히 뭔가 분명한 것을 놓치고 있습니다.
API를 사용하지 않았지만 '200'이 HTTP 상태 확인 응답임을 알고 있습니까? 나는 구글이 그것으로부터 표류 할 것이라고 상상할 수 없다. –
@NiklasR [RFC2616] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) 201 상태 코드에 따르면 "요청이 완료되어 새로운 리소스가 생성되었습니다." 캘린더 API의 [procotol guide] (https://developers.google.com/google-apps/calendar/v2/developers_guide_protocol#AuthOAuth)에서 : > 두 번째 POST 요청 (또는 첫 번째 POST 요청)을 보낼 때 캘린더 이벤트를 만든 다음 요소 또는 (JSON-C) 데이터 객체 형태로 새 이벤트의 복사본과 함께 HTTP 201 CREATED 상태 코드를 반환합니다. –
pointlessCog