Facebook PHP API 错误代码 100:API 中提供的 appsecret_proof 无效

Posted

技术标签:

【中文标题】Facebook PHP API 错误代码 100:API 中提供的 appsecret_proof 无效【英文标题】:Facebook PHP API Error code 100: Invalid appsecret_proof provided in the API 【发布时间】:2014-08-12 21:03:00 【问题描述】:

我正在使用 4.0 版的 php SDK for Facebook。下午的大部分时间我都在四处寻找,但我发现的任何与我的问题相关的帖子要么不起作用,要么涉及使用较旧的 SDK 版本。

我正在尝试使用 FacebookRequest 对象向 facebook 发出基本 GET 请求,但它返回错误代码 100,并带有错误消息“API 中提供的应用程序秘密证明无效”。

在我的应用设置中,我尝试启用“需要 appsecret_proof 进行服务器 API 调用”以及禁用它。奇怪的是,这并没有改变我收到的错误。

编辑:我已经仔细检查了我的应用密钥、应用密码和访问令牌,它们似乎都是正确的。

这是我的代码:

require_once(dirname(__FILE__).DIRECTORY_SEPARATOR.'Facebook/autoload.php' );

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;

$app_key = 'MYAPP_KEY';
$app_secret = 'MYAPP_SECRET';

$fb_access_token = "MYACCESS_TOKEN";

// init app with app id (APPID) and secret (SECRET)
FacebookSession::setDefaultApplication($app_key,$app_secret);

try 
  $session = new FacebookSession($fb_access_token);
 catch( FacebookRequestException $ex ) 
  // When Facebook returns an error
    echo "Facebook returned a request exception.";
    exit;
 catch( Exception $ex ) 
  // When validation fails or other local issues
    echo "Facebook returned an unspecified exception.";
    exit;


try
    // graph api request for user data
    $request = new FacebookRequest( $session, 'GET', '/me' );
    $response = $request->execute();
    // get response
    $graphObject = $response->getGraphObject();

    // print data
    echo  print_r( $graphObject, 1 );
catch(FacebookRequestException $e)
    echo "Exception occured, code: " . $e->getCode();
    echo " with message: " . $e->getMessage();
    echo "Raw response: " . $e->getRawResponse();

我很茫然;我一直盯着它看了很久,我找不到它有什么问题。

【问题讨论】:

【参考方案1】:

你可以试试这个: 1. 在您的 FbApp 中禁用“要求 appsecret_proof 进行服务器 API 调用” 2. 在您的代码中,在 FacebookSession::setDefaultApplication($app_key,$app_secret); 行之后 添加这一行:FacebookSession::enableAppSecretProof(false);

【讨论】:

完美。为我工作。 有没有办法用旧的 SDK v.3 解决这个问题?我用这个问题开了一个新话题:***.com/questions/31535380/…

以上是关于Facebook PHP API 错误代码 100:API 中提供的 appsecret_proof 无效的主要内容,如果未能解决你的问题,请参考以下文章

facebook 发送 API 错误代码:100 API 错误描述:无效参数错误消息:“链接”无效

Facebook API 400 错误请求

Facebook Xmpp 聊天 API 错误

PHP中的Facebook Graph API出现不一致的错误 - 无法连接到graph.facebook.com端口443:连接超时

Facebook 错误:“(#100)无效参数”、“OAuthException”、“代码”:100

Facebook PHP API 订阅问题