、これはGoogleのオブジェクトがどのように見えるかです:- 私はグーグルでログインしOAuthlibを使用してWebアプリケーションをやろうとしているフラスコ
google = oauth.remote_app('google',
request_token_url=None,
access_token_method='POST',
request_token_params={'scope': 'email'},
access_token_url='https://accounts.google.com/o/oauth2/token',
authorize_url='https://accounts.google.com/o/oauth2/auth',
consumer_key="my consumer",
consumer_secret="my secret",
base_url='https://www.googleapis.com/oauth2/v1/'
)
私はHVE問題だから、
@app.route('/login/authorized/<provider>')
def authorized():
resp = google.authorized_response()
auth_error(resp)
id_token = json.load(resp['id_token'])
login_user(me, True)
return redirect(url_for('index'))
、私はjson.loadでやろうが、この特定のケースでは、Googleが私に与えた情報をデコードすることで、私はGoogleからのユーザー情報を取得する場合で、彼は私の承認図であり、レスポンスにはid_tokenという長い文字列があり、私の研究によれば、jsonでエンコードされた文字列であるwhそれは、デコードされたすべてのユーザー情報を提供し、関係なく、私はそれをデコードするための正しい方法を見つけることができないようしてみてくださいどのくらい、私が手にエラーがありませんエン:json.loadラインで
AttributeError: 'unicode' object has no attribute 'read'
。
EDIT:id_tokenをデコードした後、それを使って自分のデータベースでユーザーを取得または作成します。
私はFlaskを使用しています。ライブラリはjsonです。
誰かがPythonオブジェクトに文字列をデコードする正しい方法を説明できるなら、私はそれを多く、またはこれがjsonではないがコード化された文字列のいくつかの他の型を教えてくださいありがとうと思います。事前にどうもありがとうございました。
の詳細については
私はとValueErrorを得るjson.loadsを使用する場合:いいえJSONオブジェクトは、多分私はGoogleが返しているものを非常によく説明していないよ、デコードすることができ、私はそれをここに投稿するだろうが、それはあります –
@JenaroCalviñoトークンが[base64](https://en.wikipedia.org/wiki/Base64)エンコーディングのように見える場合、私の答えに従って、最初にそれを解読してみてください。 –
@JenaroCalviñoあなたは 'id_token'がJSON文字列であることを示唆する研究を提供できますか? –