2015-05-29 1 views
1

Google недавно перешел на OAuth2.0, и нам нужно изменить наши предыдущие маканизмы аутентификации (то есть от ProgrammaticLogin до OAuth2.0).Python - Создать альбом с ошибкой Picasa

Я могу успешно просматривать альбомы и читать данные/комментарии на фотографиях. Когда я пытаюсь добавить новый альбом/фотографию или попытаюсь записать данные, я получаю следующую ошибку.

client = PhotosService(email="xxxx")  
    ... 
    ... 
    ... 
    #After successfull OAuth 
    album = client.InsertAlbum(title="Temp album", summary="My summary", access="public") 

Эта строка вызывает следующую ошибку.

File "/Users/mac/destipak/env/lib/python2.7/site-packages/gdata/photos/service.py", line 358, in InsertAlbum 
    raise GooglePhotosException(e.args[0]) 
gdata.photos.service.GooglePhotosException: (403, 'Forbidden', 'Modification only allowed with api authentication.') 

ответ

0

Я был не совсем уверен, но вы действительно внесли изменения в OAuth2? Я использовал следующий код, и он сработал.

def OAuth2Login(client_secrets, credential_store, email): 
scope='https://picasaweb.google.com/data/' 
user_agent='testingApp' 

storage = Storage(credential_store) 
credentials = storage.get() 
if credentials is None or credentials.invalid: 
    flow = flow_from_clientsecrets(client_secrets, scope=scope, redirect_uri='urn:ietf:wg:oauth:2.0:oob') 
    uri = flow.step1_get_authorize_url() 
    webbrowser.open(uri) 
    code = raw_input('Enter the authentication code: ').strip() 
    credentials = flow.step2_exchange(code) 
    storage.put(credentials) 

if (credentials.token_expiry - datetime.utcnow()) < timedelta(minutes=5): 
    http = httplib2.Http() 
    http = credentials.authorize(http) 
    credentials.refresh(http) 

gd_client = gdata.photos.service.PhotosService(source=user_agent, 
              email=email, 
              additional_headers={'Authorization' : 'Bearer %s' % credentials.access_token}) 

return gd_client 
album = gd_client.InsertAlbum('test', 'My Test Album', access='protected') 

я должен создать ключ API в девелоперском портале Google и скачать JSon секрет, но после того, как делать, что я был в состоянии создать альбом успешно. Это репо было очень полезно https://github.com/MicOestergaard/picasawebuploader.