在 python 中使用 appsecret_proof 参数进行图形 api 调用的正确方法是什么?有没有允许这种事情的图书馆?
我试图使用'python for facebook'库,但文档实际上不存在,所以我无法弄清楚。
在 python 中使用 appsecret_proof 参数进行图形 api 调用的正确方法是什么?有没有允许这种事情的图书馆?
我试图使用'python for facebook'库,但文档实际上不存在,所以我无法弄清楚。
以下是使用facebook-sdk 的方法:
import facebook
import hashlib
import hmac
def genAppSecretProof(app_secret, access_token):
h = hmac.new (
app_secret.encode('utf-8'),
msg=access_token.encode('utf-8'),
digestmod=hashlib.sha256
)
return h.hexdigest()
app_secret = "xxxxxxxxx"
access_token = "xxxxxxxxx"
api = facebook.GraphAPI(access_token)
msg = "Hello, world!"
postargs = {"appsecret_proof": genAppSecretProof(app_secret, access_token)}
status = api.put_wall_post(msg, postargs)
使用 Python 2.7.9 和 facebook-sdk 1.0.0-alpha 测试。
在没有 facebook SDK 的情况下执行此操作非常简单......关键是facebook_app_token
如果您的app_id
和app_secret
与|
.
import hmac,hashlib
facebook_app_id = '<YOUR_APP_ID>'
facebook_app_secret = '<YOUR_APP_SECRET>'
facebook_app_token = '{}|{}'.format(facebook_app_id,facebook_app_secret)
app_secret_proof = hmac.new(facebook_app_secret.encode('utf-8'),
msg=facebook_app_token.encode('utf-8'),
digestmod=hashlib.sha256).hexdigest()
然后你可以在你调用的任何 API 中包含 app_secret_proof ......例如,
import requests
base_url = 'https://graph.facebook.com/v2.10/<USER_ID>/ids_for_pages?access_token={}&appsecret_proof={}'
url = base_url.format(facebook_app_token,app_secret_proof)
result = requests.get(url)
result.json()
这个问题太老了,但我找到了app_secret_proof
使用这个 python SDK生成的其他方法。
from facebook_business import session
fb_session = session.FacebookSession(app_id, app_secret, access_token)
app_secret_proof = fb_session.appsecret_proof