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

时间:2014-08-12 21:03:01

标签: php facebook facebook-graph-api

我正在使用适用于Facebook的PHP SDK 4.0版。我已经四处寻找下午的大部分时间了,但是我发现的与我的问题有关的任何帖子要么没有用,要么使用旧的SDK版本。

我正在尝试使用FacebookRequest对象向Facebook发出基本的GET请求,但它返回错误代码100,并显示错误消息“API中提供的appsecret_proof无效”。

在我的应用设置中,我尝试启用“require appsecret_proof for server API calls”,并禁用它。奇怪的是,这并没有改变我收到的错误。

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

这是我的代码:

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 个答案:

答案 0 :(得分:5)

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