首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API参数中提供的无效appsecret_proof

API参数中提供的无效appsecret_proof
EN

Stack Overflow用户
提问于 2014-01-07 08:37:42
回答 2查看 13.9K关注 0票数 3

我在我的facebook账户中创建了一个应用程序,并使用我的访问令牌(php)向我的朋友发了帖子。

但是,另一个用户不能使用我的应用程序id和机密将错误信息发送给他们的朋友。

API参数中提供的无效appsecret_proof

我已经残疾了

在我的应用程序设置中需要的应用程序机密证明

有什么解决办法吗?

代码语言:javascript
复制
public function facebookUsershare() { 
require '../facebook/src/facebook.php'; $facebook = new Facebook(array( 'appId' => 'app     id', 'secret' => 'secret_key', )); 

$privacy = array( 'description' => 'Vladimir Sergeevich', 'value' => 'CUSTOM', 'friends'   =>'friend id' 'allow' => 'loged in user' );
try {
$result = $facebook->api('/me/feed', 'POST', array( "access_token" => 'access_token',   'picture' => "path to image", 'link' => "gmail.com";, 'name' => "Go wi6 7", 'caption' =>   "capn", 'privacy' => json_encode($privacy) ));

echo 'Successfully posted to Facebook Personal Profile'; //return $facebookfrndids; }   catch(Exception $e) { 
echo $e->getMessage(); 
return false; } 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-10 11:30:23

最后我得到了答案..。在app的高级设置中禁用所需的应用程序机密证明,并在base_facebook.php sdk中注释以下代码

代码语言:javascript
复制
if (isset($params['access_token'])) {
  $params['appsecret_proof'] = $this->getAppSecretProof($params['access_token']);
}
票数 4
EN

Stack Overflow用户

发布于 2016-07-08 13:48:55

至于文档

图形API调用可以从客户端或您的服务器代表客户端进行。通过添加名为appsecret_proof的参数,可以更好地保护来自服务器的调用。

因此,您需要指定额外的param appsecret_proof来使用access_token进行收集。appsecret_proof是与应用程序秘密签名的access_token的数字签名。签名需要确认access_token。要获得appsecret_proof,您需要像这样计算签名:

代码语言:javascript
复制
secret = 'app secret'
token = 'access token'
digest = OpenSSL::Digest.new('sha256')
proof = OpenSSL::HMAC.digest(digest, secret, token)

# result params:
"access_token=#{token}&appsecret_proof=#{proof}"

这个例子是关于Ruby语言的,但这不是语言问题。请参考您的语言手册,以参考hmac签名api。

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

https://stackoverflow.com/questions/20967152

复制
相关文章

相似问题

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