2014-04-11 2 views
0

새 캘린더를 만들려고하는데, 내가 말한 계정에 대한 자격이 있다고 가정 할 때 어떤 Google 계정을 만들 것인지 지정할 수 있기를 원합니다. 벨로우즈는 현재 로그인 한 사용자에게 코드를 생성하거나 액세스를 허용하기 위해 사용자 상호 작용이 필요합니다. 사용자를 지정하고 백그라운드에서 명령을 실행하는 방법이 있습니까? 나는 본질적으로 프로그램이 실행될 때 내 계정에 일정을 추가하기를 원하지만 그 시점에 내 계정이 로그인 할 수는 없다.다른 사용자로 Google API v3에 로그인하는 방법은 무엇입니까?

나는이 ClientLogin을 통해 구글 API의 버전 2에 가능했다 생각하지만, 난 버전 V3 3.

import gflags 
import httplib2 

from apiclient.discovery import build 
from oauth2client.file import Storage 
from oauth2client.client import OAuth2WebServerFlow 
from oauth2client.tools import run 

FLAGS = gflags.FLAGS 
FLOW = OAuth2WebServerFlow(
    client_id='MY_CLIENT_KEY', 
    client_secret='MY_CLIENT_SECRET', 
    scope='https://www.googleapis.com/auth/calendar', 
    user_agent='MyApp/v1') 
storage = Storage('calendar.dat') 
credentials = storage.get() 
if credentials is None or credentials.invalid == True: 
    credentials = run(FLOW, storage) 

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

calendar = { 
    'summary': 'Test3', 
    'timeZone': 'America/New_York' 
} 

created_calendar = service.calendars().insert(body=calendar).execute() 

답변

1

를 사용하는 것을 시도하고, 당신이 서비스 계정을 사용해야합니다 사용자로 행동하라. 이 과정은 Google Drive documentation에 설명되어 있습니다. Google 드라이브 API 대신 캘린더 API v3 범위 및 참조 만 사용하면됩니다.