我希望能够从用户拥有的朋友列表中获取基本信息(与endpoint / users / @ me相同)。
我知道如何获取用户的朋友列表,我有以下结果:
{u'data': {u'items': [{u'xid': u'YRGHdmSbTA-ogFiDDnb-Mg'},
{u'xid': u'YRGHdmSbTA-1BMiQ65YBrg'},
{u'xid': u'YRGHdmSbTA-a4b-G83CeRw'}],
u'size': 3},
u'meta': {u'code': 200,
u'message': u'OK',
u'time': 1475342269,
u'user_xid': u'YRGHdmSbTA_U2wilrqpF_Q'}}
所以我知道xid-YRGHdmSbTA_U2wilrqpF_Q的帐户有3个朋友拥有自己的xid。
但每当我试图根据他们的XID获取朋友的用户信息时,我无权这样做:
{
"data": {},
"meta": {
"code": 401,
"error_detail": "Only the owner of this resource is authorized to make this request.",
"error_type": "authorization_error",
"message": "Unauthorized",
"time": 1475382850,
"user_xid": "YRGHdmSbTA_U2wilrqpF_Q"
}
}
似乎有些端点可以使用friend-xid进行查询,但有些其他端点不是,这里是我使用的用户端点获得的列表(如果有任何错误,请更正我):
OK https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/bandevents
OK https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/body_events
OK https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/trends
authorization_error https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}
authorization_error https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/friends
authorization_error https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/generic_event
authorization_error https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/goal
authorization_error https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/heartrat
authorization_error https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/meal
authorization_error https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/mood
authorization_error https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/move
authorization_error https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/setting
authorization_error https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/sleep
authorization_error https://jawbone.com/nudge/api/v.1.1/users/{friend_xid}/timezone
问题: 有问题的朋友是否必须允许我的应用程序查询他们的信息(任何端点)?
建议: 如果可能的话,至少访问基本信息端点以显示用户朋友的信息是很好的,即使他们还没有允许我的应用程序。
感谢您的反馈。
答案 0 :(得分:0)
要查看朋友的用户信息,该朋友还必须浏览您应用的OAuth流程。这是一个要求,每个UP用户必须授予您的应用程序查看某些类型的数据的权限。
此外,传递给端点的用户xid必须与您为端点收到的访问令牌匹配。如果这些不匹配,那么在大多数情况下,您将收到401响应。
如果您没有收到401,您很可能只会收到空数据的回复。如果您收到非空响应,则应忽略该数据,因为它不能保证准确。实际上,如果您有一个实例,您正在为用户提供尚未完成OAuth流程的数据,那么查看这些数据会很棒。请将详细信息发送至apisupport@jawbone.com。