我想使用data.photos.service.PhotosService
來推送和從Picasa中提取照片。我從Google控制檯獲得了一個服務密鑰文件XXXXXXXX-privatekey.p12,現在正在嘗試使用所述密鑰與Google進行身份驗證。在python中使用OAuth2和gdata上的服務帳戶
的OAuth2用戶使用AppEngine上的文檔已經使我相信,使用下面的是使用:
f = file(settings.SITE_ROOT + '/aurora/' + settings.PRIVATE_KEY, 'rb')
key = f.read()
f.close()
credentials = SignedJwtAssertionCredentials(settings.SERVICE_ACCOUNT_NAME, key, scope = 'http://picasaweb.google.com/data https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile')
http = httplib2.Http()
http = credentials.authorize(http)
service = build("oauth2", "v2", http=http)
user_info = None
try:
user_info = service.userinfo().get().execute()
# neither of these two methods work
#gd_client.SetOAuthInputParameters(signature_method = gdata.auth.OAuthSignatureMethod.RSA_SHA1, consumer_key = "asdfasdfasdf.apps.googleusercontent.com", rsa_key = key, two_legged_oauth = True, requestor_id = user_info.get('email'))
#gd_client.auth_token = gdata.gauth.TwoLeggedOAuthRsaToken(consumer_key = user_info.get('email'), rsa_private_key = key, requestor_id = user_info.get('email'))
except errors.HttpError, e:
logging.error('An error occurred: %s', e)
user_inf0 = {u'verified_email': True, u'id': u'1234', u'name': u'[email protected]', u'email': u'[email protected]'}
的問題是,使用SetOAuthInputParameters
方法1返回一個無效的令牌或方法2個回報403 restricted
。
我在我束手無策通過代碼山區,所有做定期的3條腿OAuth的時候我實實在在地不想這樣做的閱讀。任何想法/文章我還沒有看到?
你是如何在'SignedJwtAssertionCredentials'調用中指定用戶的? – Gautam
我已經更新了答案。 –
我一直使用這個HTTP 400,我正在使用電子表格API – Gautam