2013-04-17 2 views
0

В настоящий момент мне нужно получить «код успеха» каждый раз, когда я хочу запустить мое .py приложение. для доступа к моим файлам googdrive, которые являются болью.Как настроить Drive SDK, поэтому вам не нужен токен успеха каждый раз, когда вы запускаете .py

Я видел Ali Afshars отличное видео на https://developers.google.com/drive/search-parameters, где он использует: from auth import http, чтобы оптимизировать этот процесс.

Не знаете, что должна содержать эта функция ... Можете ли вы указать мне в правильном направлении, чтобы я мог настроить мою .py для этого автоматически ... или, по крайней мере, только один раз.

большое спасибо

Dav-о


EDIT отношение тока надрез кода следующим образом:

import logging 
logging.basicConfig() 
import httplib2 
import pprint 
from apiclient.discovery import build 
from apiclient.http import MediaFileUpload 
from oauth2client.client import * 
from apiclient import errors 

CLIENT_ID = "864350......ps.googleusercontent.com" 
CLIENT_SECRET = "sw0yb.....-zR6XWzEgM" 
OAUTH_SCOPE = 'https://www.googleapis.com/auth/drive' 
REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oo...ooo' # Redirect URI for installed apps 

flow = OAuth2WebServerFlow(CLIENT_ID, CLIENT_SECRET, OAUTH_SCOPE, REDIRECT_URI) 
authorize_url = flow.step1_get_authorize_url() 
print 'Go to the following link in your browser: ' + authorize_url 
code = raw_input('Enter verification code: ').strip() 
credentials = flow.step2_exchange(code) 

http = httplib2.Http() 
http = credentials.authorize(http) 

drive_service = build('drive', 'v2', http=http) 

ответ

2

То, что он, вероятно, делает в auth является:

import httplib2 
from oauth2client.client import OAuth2Credentials 

http = httplib2.Http() 
credentials = OAuth2Credentials(access_token, client_id, client_secret, refresh_token, None, '', '') 
credentials.authorize(http) 

Вы можете обернуть этот код модулем/методом и использовать аутентификацию своих запросов. Для сценариев с несколькими пользователями сохраните токены доступа и обновления (скорее всего, в db) и объект учетных данных init с сохраненными токенами.

+0

Спасибо Бурку. Это отличное начало. как получить «access_token». это то же самое, что и код успеха, который я копирую и вставляю в приложение? Также что такое 'refresh_token'. Я редактировал вопрос, чтобы показать текущий код. Благодаря! – user2206361

+0

credentials = flow.step2_exchange (код) содержит токен доступа. Это не код, который вы копируете и вставляете. Посмотрите на https://developers.google.com/oauthplayground/, чтобы понять поток. –

+0

Burcu = awesome. Я понятия не имел, что есть OAuth 2.0 PLAYground! Я думаю, что прочитал LOTS документации, никогда не видел ссылки на нее вообще. Я посмотрю на это :) ура! – user2206361

Смежные вопросы