我已經成功地插入了此程序的一個片刻之前,並試圖找出API是否當前損壞或我犯了一個錯誤。google + api moments.insert 401未經授權使用python請求
我已獲得與request_visible_actions一個有效的access_token = http://schema.org/AddAction如從AUTH階段下方的部分URL看出以及plus.login範圍:
https://accounts.google.com/o/oauth2/auth?access_type=offline&request_visible_actions=http%3A%2F%2Fschema.org%2FAddAction&
請求代碼:
import requests
import json
moment = {"type":"http://schema.org/AddAction",
"object": {"id": "object-id-1",
"type":"http://schema.org/AddAction",
"name": "The Google+ Platform",
"description": "A page that describes just how awesome Google+ is!",
"image": "https://developers.google.com/+/plugins/snippet/examples/thing.png"}}
url ='https://www.googleapis.com/plus/v1/people/me/moments/vault'
params = {'access_token': 'MY_VALID_ACCESS_TOKEN'}
r = requests.request("POST",url=url, params=params, json=moment, headers=headers)
print r.url
print r.json()
和結果:
https://www.googleapis.com/plus/v1/people/me/moments/vault?access_token=MY_ACCESS_TOKEN
{u'error': {u'code': 401,
u'message':
u'Unauthorized',
u'errors': [{u'domain': u'global', u'message': u'Unauthorized', u'reason': u'unauthorized'}]}}
我試圖驗證智慧h request_visible_actions存在的tokeninfo端點,但沒有在那裏列出。
證實授予範圍:
'https://www.googleapis.com/auth/userinfo.profile',
'https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/plus.login',
'https://www.googleapis.com/auth/plus.profile.emails.read',
'https://www.googleapis.com/auth/plus.moments.write',
'https://www.googleapis.com/auth/plus.me',
'https://www.googleapis.com/auth/plus.profile.agerange.read',
'https://www.googleapis.com/auth/plus.profile.language.read',
'https://www.googleapis.com/auth/plus.circles.members.read'
我能夠得到的時刻/金庫用同樣的道理,所以我知道它是有效的。
這裏的任何想法?
提示:請求2.4.2和最多支持'json'關鍵字參數;在這種情況下,您可以*忽略* headers和'json.dumps()'調用; 'r = requests.post(url,json = moment)' – 2014-12-13 08:46:40
不錯的提示,我會試試看。 – arctelix 2014-12-13 08:46:48
讓我們暫時假定'MY_VALID_ACCESS_TOKEN'不是URL安全的。你可以嘗試'params = {'access_token':MY_VALID_ACCESS_TOKEN}'而不是手動將其添加到URL?當然,也可以在URL末尾去掉'?'。 – 2014-12-13 08:48:46