Php API参数中提供的appsecret\u证明无效

Php API参数中提供的appsecret\u证明无效,php,facebook-graph-api,Php,Facebook Graph Api,嗯,我一直在努力让appsecret_证明工作 我已在应用程序设置中启用使用应用程序\u机密 PHP sdk中生成应用程序机密的代码 $appsecret_proof= hash_hmac('sha256', APP_ID. "|" . APP_SECRET, APP_SECRET); 我在批处理请求中将其与post参数一起传递 $params['batch'] = json_encode($entries); $params['appsecret_proof'] = $appsecret_p

嗯,我一直在努力让appsecret_证明工作

我已在应用程序设置中启用使用应用程序\u机密

PHP sdk中生成应用程序机密的代码

$appsecret_proof= hash_hmac('sha256', APP_ID. "|" . APP_SECRET, APP_SECRET);
我在批处理请求中将其与post参数一起传递

$params['batch'] = json_encode($entries);
$params['appsecret_proof'] = $appsecret_proof;
$response = $facebook->api('/', "POST", $params);
我已经核对了应用程序id和应用程序机密

通过这些设置,我得到以下错误

API参数中提供的appsecret\u证明无效

任何帮助都将不胜感激


p.S禁用应用程序内设置使其工作。

根据facebook文档,正确的语法是:

$appsecret_proof= hash_hmac('sha256', $access_token, $app_secret);
请看这里:


修复了我的问题…

根据facebook文档,正确的语法是:

$appsecret_proof= hash_hmac('sha256', $access_token, $app_secret);
请看这里:


修复了我的问题…

如果在一个或多个子请求中使用用户访问令牌,这些请求将需要自己的appsecret\u证明。否则,Facebook将比较用户的访问令牌和应用令牌的证明,检查将失败

例如:

$proof1 = hash_hmac('sha256', [USER TOKEN 1], APP_SECRET);
$proof2 = hash_hmac('sha256', [USER TOKEN 2], APP_SECRET);


$requests = array(
   array(
       'relative_url' => "[USER ID 1]/permissions",
       'method' => "GET",
       'body' => "access_token=[USER TOKEN 1]&appsecret_proof=" . $proof1
   ),
   array(
       'relative_url' => "[USER ID 2]/permissions",
       'method' => "GET",
       'body' => "access_token=[USER TOKEN 2]&appsecret_proof=" . $proof2
   ),
);


$appToken = APP_ID. "|" . APP_SECRET;
$appsecret_proof= hash_hmac('sha256', appToken, APP_SECRET);
$params['batch'] = json_encode($requests);
$params['appsecret_proof'] = $appsecret_proof;
$response = $facebook->api('/', "POST", $params);

如果在一个或多个子请求中使用用户访问令牌,则这些请求将需要自己的appsecret\u证明。否则,Facebook将比较用户的访问令牌和应用令牌的证明,检查将失败

例如:

$proof1 = hash_hmac('sha256', [USER TOKEN 1], APP_SECRET);
$proof2 = hash_hmac('sha256', [USER TOKEN 2], APP_SECRET);


$requests = array(
   array(
       'relative_url' => "[USER ID 1]/permissions",
       'method' => "GET",
       'body' => "access_token=[USER TOKEN 1]&appsecret_proof=" . $proof1
   ),
   array(
       'relative_url' => "[USER ID 2]/permissions",
       'method' => "GET",
       'body' => "access_token=[USER TOKEN 2]&appsecret_proof=" . $proof2
   ),
);


$appToken = APP_ID. "|" . APP_SECRET;
$appsecret_proof= hash_hmac('sha256', appToken, APP_SECRET);
$params['batch'] = json_encode($requests);
$params['appsecret_proof'] = $appsecret_proof;
$response = $facebook->api('/', "POST", $params);