如何使用创建appsecret_proof?
Facebook在PHP上有一个例子。我还在这个要旨中看到了红宝石的一个例子。
OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), <app_secret>, <user_access_token>)
但是我收到了一个Invalid appsecret_proof provided in the API argument
从facebook的例子来看,还不清楚$app_access_token是什么,这是App吗?
如何在红宝石中创建appsecret_proof?
更新代码:
secret = OpenSSL::HMAC.hexdigest('SHA256', ENV["FACEBOOK_SECRET_ID"], app_token)
dct = {
'access_token' => current_profile.oauth_token,
'appsecret_proof' => secret,
'fields' => "context.fields(all_mutual_friends)"
}
url = "https://graph.facebook.com/v2.5/" + friend.uid + "/"
resp = HTTPClient.get(url, dct)发布于 2017-03-21 17:02:47
这是我有工作的代码:
hmac = OpenSSL::HMAC.new(FB_SECRET, OpenSSL::Digest::SHA256.new)
hmac << access_token
proof = hmac.hexdigest
param_hash[:appsecret_proof] = proof其中FB_SECRET是32位数字(在我的例子中)随机字符串。
在大多数情况下,access_token是用户的登录身份验证令牌(我假设是current_profile.oauth_token )。此令牌必须与您的应用程序相关联。如果要使用应用程序的凭据而不是用户的凭据进行API调用,则可以使用"#{FB_APP_ID}|#{FB_SECRET}"作为访问令牌。
cf https://developers.facebook.com/docs/facebook-login/access-tokens
发布于 2019-07-31 15:50:25
我找到了另一种方法来生成appsecret_proof for Facebook
OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), <app_secret>, <user_access_token>)摘录自此gist螺纹
https://stackoverflow.com/questions/42906955
复制相似问题