我已经成功地插入了此程序的一个片刻之前,并试图找出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