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

simplejsonモジュールを使用して JSON データを解析します。

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']

次に、ヤンが提案したものを使用して、に保存されているクエリ文字列を解析します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

を解析するには、 http://docs.python.org/library/urlparse.html#urlparse.parse_qsaccess_tokenを使用できます。

文字列引数として指定されたクエリ文字列を解析します (タイプ application/x-www-form-urlencoded のデータ)。データはディクショナリとして返されます。ディクショナリ キーは一意のクエリ変数名であり、値は各名前の値のリストです。

于 2012-05-21T14:18:22.017 に答える