首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby图形api appsecret_proof

Ruby图形api appsecret_proof
EN

Stack Overflow用户
提问于 2017-03-20 14:58:36
回答 2查看 736关注 0票数 3

如何使用创建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

更新代码:

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2017-03-21 17:02:47

这是我有工作的代码:

代码语言:javascript
复制
  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

票数 1
EN

Stack Overflow用户

发布于 2019-07-31 15:50:25

我找到了另一种方法来生成appsecret_proof for Facebook

代码语言:javascript
复制
OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), <app_secret>, <user_access_token>)

摘录自此gist螺纹

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42906955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档