次のコードがあります。
def base64_url_decode(inp):
padding_factor = (4 - len(inp) % 4) % 4
inp += "="*padding_factor
return base64.b64decode(unicode(inp).translate(dict(zip(map(ord, u'-_'), u'+/'))))
def parse_signed_request(signed_request, secret):
l = signed_request.split('.', 2)
encoded_sig = l[0]
payload = l[1]
sig = base64_url_decode(encoded_sig)
data = json.loads(base64_url_decode(payload))
if data.get('algorithm').upper() != 'HMAC-SHA256':
log.error('Unknown algorithm')
return None
else:
expected_sig = hmac.new(secret, msg=payload, digestmod=hashlib.sha256).digest()
if sig != expected_sig:
return None
else:
log.debug('valid signed request received..')
return data
Facebook の署名付きリクエスト データ (parse_signed_request から返される) を使用して、その人のメール アドレスを取得するにはどうすればよいですか?
これに関するFacebookのドキュメントは次のとおりです。 https://developers.facebook.com/docs/howtos/login/signed-request/
私はやってみました:
data = parsed_signed_request(...)
data.get('registration').email
しかし、それはうまくいきませんでした。
私に何ができる?