0

使用django-social-auth,它允许您捕获某些详细信息,因此 Dropbox 用户extra_data看起来如下

{"access_token": "oauth_token_secret=XXXXXXXXXXXX&oauth_token=YYYYYYYYYYY", "7200": null, "id": null}

models.py 设置如下。

class UserSocialAuth(models.Model):
    """Social Auth association model"""
    user = models.ForeignKey(User, related_name='social_auth')
    provider = models.CharField(max_length=32)
    uid = models.CharField(max_length=255)
    extra_data = JSONField(blank=True)

如何分别访问 oauth_token 和 oauth_token_secret?

4

2 回答 2

1

使用模块解析 JSON 数据simplejson

from django.utils.simplejson import loads

data = {"access_token": "oauth_token_secret=XXXXXXXXXXXX&oauth_token=YYYYYYYYYYY", "7200": null, "id": null} tokens = parse_qs(loads(data)['access_token'])

json_dict = loads(data)
access_token = json_dict['access_token']

然后使用 Jan 向您建议的内容来解析存储在中的查询字符串access_token

from urlparse import parse_qs

tokens = parse_qs(access_token)

print tokens['oauth_token_secret']
print tokens['oauth_token']
于 2012-05-21T14:54:51.060 回答
0

对于解析access_token,您可以使用http://docs.python.org/library/urlparse.html#urlparse.parse_qs

解析作为字符串参数给出的查询字符串(application/x-www-form-urlencoded 类型的数据)。数据作为字典返回。字典键是唯一的查询变量名称,值是每个名称的值列表。

于 2012-05-21T14:18:22.017 回答