如何在python中构建facebook signed_request字符串?

时间:2012-05-10 18:23:28

标签: python facebook facebook-graph-api

有很多关于如何构建signed_request-s的文档,但找不到(并提出)一个创建签名请求的简单方法

有没有人有解决方案?

基本文档为here

我需要它进行单元测试。更准确地说,我正在使用facebook-sdk,并且只是编写了一个很好的中间件来使用facebook身份验证和tastypie。为了测试这个,我需要模拟facebook的auth进程,最后一个缺失的步骤是在auth发生时创建在浏览器中设置的cookie。

结果将是开源的。

1 个答案:

答案 0 :(得分:0)

如下:

from hashlib import md5
def fb_signature(request, app_secret):
    fb_request = dict([(k,request[k]) for k in request if k.startswith('fb_sig')])
    payload = ''.join(['%s=%s' % (k[len('fb_sig_'):], fb_request[k]) \
                          for k in sorted(fb_request.keys()) if k != 'fb_sig' ])
    return md5(payload + app_secret).hexdigest()

这里请求 ---您的计算签名请求,app_secret ---您的FB应用秘密。