我正在尝试向linkedinAPI提出进一步的请求,为此,我需要令牌和token_secret。
我在linkedin中有几个测试帐户,所有这些账户的登录过程都很成功,但是token_secret商店(因为它们都是空的)。
这是个错误吗?我怀疑是因为在超级oauth2调用中使用了对令牌/令牌_机密,所以我从linkedin获得了以下信息
{ "errorCode": 0, "message": "[unauthorized]. The token used in the OAuth request is not valid. AQVvM2f2qefU3vULPS-R46DXN8Mnra9ImG14hzeTvMMcXvBVOEiUl4RTZCJrdFZoTfGGN1fFzLvxG-O_UWB8s8EDr35ZsgwW59y4KilndoEkr105Sg2GR90jmUxpqxU572IiARjN5gxAjfoWC4-_UupKlEtafQn23XQqvXeuLvE-FsPAaSA", "requestId": "VOAL1ULK4X", "status": 401, "timestamp": 1395348629428 }详细信息:--我使用检查这些令牌:
from allauth.socialaccount.models import SocialToken
map(lambda st: st.token_secret, SocialToken.objects.all())我得到的是空输出:
[u'', u'', u'']发布于 2014-03-21 11:43:54
我自己找到了解决办法所以我会解释的。
我不太喜欢oauth2,所以我也不知道这个过程,如果有一个空的secret_token也是正常的。因此,我在django-allauth代码中调试了一些代码,并且我看到它们执行的请求只使用令牌(没有秘密令牌)。
然后,我更改了库,并开始使用相同的方法:请求。使用下面的简单脚本,我可以向linkedin API提出任何其他请求:
def see_my_groups_json(request, url):
import requests
token = SocialToken.objects.get(account__user_id=request.user.pk)
resp = requests.get(url, params={'oauth2_access_token': token.token})
return resp.json()发布于 2014-12-22 23:32:02
您应该检查linkedin提供程序的范围参数。例如,下一个配置请求允许访问用户的电子邮件地址、基本配置文件以及代表用户读取和共享更新。
SOCIALACCOUNT_PROVIDERS = {
'linkedin_oauth2': {
'SCOPE': ['r_emailaddress', 'r_basicprofile', 'rw_nus'],
'PROFILE_FIELDS': ['id', 'first-name', 'last-name', 'email-address', 'picture-url', 'public-profile-url']
}
}如果在令牌生成之后,我们尝试进行一个需要其他特权的API调用,我们将得到一个401状态代码HTTP响应。
默认情况下,django-allauth、r_emailaddress作用域或无作用域(取决于是否启用SOCIALACCOUNT_QUERY_EMAIL )。
希望这能帮到你。
https://stackoverflow.com/questions/22544688
复制相似问题