Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过php的Facebook API集成错误_Php_Facebook_Facebook Graph Api - Fatal编程技术网

通过php的Facebook API集成错误

通过php的Facebook API集成错误,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我最近通过一些尝试和错误了解到,使用JavaScript SDK对Facebook graph API的请求有时会返回以下错误 { "error":{ "message":"An active access token must be used to query information about the current user.", "type":"OAuthException","code":2500 } } 快速但有点脏的解决方案是将access_令牌作为参数添

我最近通过一些尝试和错误了解到,使用JavaScript SDK对Facebook graph API的请求有时会返回以下错误

    {
       "error":{
"message":"An active access token must be used to query information about the current user.",
"type":"OAuthException","code":2500
}
} 

快速但有点脏的解决方案是将access_令牌作为参数添加到每个请求中,而不是依赖JavaScript SDK为您执行此操作:

//request to get profile information for the current user
FB.api("me", {
access_token: "<access-token-for-user>"
}, function(response){
//handle response here
});

快速但有点脏的解决方案是将access_令牌作为参数添加到每个请求中,而不是依赖JavaScript SDK为您执行此操作:

//request to get profile information for the current user
FB.api("me", {
access_token: "<access-token-for-user>"
}, function(response){
//handle response here
});

请检查此代码,访问令牌在此处的url中发送:

<?php

$facebook_appid         = "facebook_appid";                                 // Facebook appplication id
$facebook_secret        = "facebook_secret";                // Facebook secret id
$facebook_pageid        = "facebook_pageid";                                // Facebook secret id
$redirect_uri           = "https://localhost/facebook_page/events.php";   // return url to our application after facebook login ## should be SAME as in facebook application
//$redirect_uri         = "https://localhost/facebook_page/fb_login.php";   // return url to our application after facebook login ## should be SAME as in facebook application
$scope                  = "user_photos,email,user_birthday,user_online_presence,offline_access,manage_pages,publish_stream,user_events,friends_events"; // User permission for facebook


$code                   = $_REQUEST["code"]?$_REQUEST["code"]:"";

if(empty($code)) {
    $_SESSION['state']  = time(); // CSRF protection
    $dialog_url         = "https://www.facebook.com/dialog/oauth?client_id=". $facebook_appid . "&redirect_uri=" . urlencode($redirect_uri) . "&state=". $_SESSION['state'] . "&scope=".$scope;
    header("location:".$dialog_url);
}

if($_SESSION['state'] && ($_SESSION['state'] == $_REQUEST['state'])) {
    $token_url          = "https://graph.facebook.com/oauth/access_token?". "client_id=" . $facebook_appid . "&redirect_uri=" . urlencode($redirect_uri). "&client_secret=" . $facebook_secret . "&code=" . $code;
    $response           = @file_get_contents($token_url);

    $params             = null;
    parse_str($response, $params);

    $account_url        = "https://graph.facebook.com/".$facebook_pageid."?fields=access_token&access_token=".$params['access_token'];
    $resp               = @file_get_contents($account_url);

    $dt                 =   json_decode($resp);


    echo $dt->access_token;
    echo "<br>";
    echo $dt->id;

    $offer_url        = "https://graph.facebook.com/".$dt->id."/feed?access_token=".$dt->access_token;
    $off                = @file_get_contents($offer_url);
    $dto                = json_decode($off);

    echo "<pre>";
    print_r($dto);


}

?>

请检查此代码,访问令牌在url中发送到此处:

<?php

$facebook_appid         = "facebook_appid";                                 // Facebook appplication id
$facebook_secret        = "facebook_secret";                // Facebook secret id
$facebook_pageid        = "facebook_pageid";                                // Facebook secret id
$redirect_uri           = "https://localhost/facebook_page/events.php";   // return url to our application after facebook login ## should be SAME as in facebook application
//$redirect_uri         = "https://localhost/facebook_page/fb_login.php";   // return url to our application after facebook login ## should be SAME as in facebook application
$scope                  = "user_photos,email,user_birthday,user_online_presence,offline_access,manage_pages,publish_stream,user_events,friends_events"; // User permission for facebook


$code                   = $_REQUEST["code"]?$_REQUEST["code"]:"";

if(empty($code)) {
    $_SESSION['state']  = time(); // CSRF protection
    $dialog_url         = "https://www.facebook.com/dialog/oauth?client_id=". $facebook_appid . "&redirect_uri=" . urlencode($redirect_uri) . "&state=". $_SESSION['state'] . "&scope=".$scope;
    header("location:".$dialog_url);
}

if($_SESSION['state'] && ($_SESSION['state'] == $_REQUEST['state'])) {
    $token_url          = "https://graph.facebook.com/oauth/access_token?". "client_id=" . $facebook_appid . "&redirect_uri=" . urlencode($redirect_uri). "&client_secret=" . $facebook_secret . "&code=" . $code;
    $response           = @file_get_contents($token_url);

    $params             = null;
    parse_str($response, $params);

    $account_url        = "https://graph.facebook.com/".$facebook_pageid."?fields=access_token&access_token=".$params['access_token'];
    $resp               = @file_get_contents($account_url);

    $dt                 =   json_decode($resp);


    echo $dt->access_token;
    echo "<br>";
    echo $dt->id;

    $offer_url        = "https://graph.facebook.com/".$dt->id."/feed?access_token=".$dt->access_token;
    $off                = @file_get_contents($offer_url);
    $dto                = json_decode($off);

    echo "<pre>";
    print_r($dto);


}

?>