【问题标题】:facebook API error : Uncaught OAuthException: Error validating access tokenfacebook API 错误:未捕获的 OAuthException:验证访问令牌时出错
【发布时间】:2011-06-07 10:06:50
【问题描述】:
【问题讨论】:
标签:
facebook
facebook-graph-api
【解决方案1】:
我遇到了这个问题,在我的情况下解决的方法是从 FB 用户的配置文件中删除应用程序并再次添加它,创建一个新的 ACCESS_TOKEN。我不知道为什么,但这被问题解决了。
【解决方案2】:
检查一下
$app_id = "YOUR_APP_ID";
$app_sec = "APP_SEC";
$canvas_page = "APP_CANVAS_PAGE_URL";
$scope = "&scope=user_photos,email,publish_stream";
$auth_url = "http://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" . urlencode($canvas_page) . $scope;
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode(".", $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, "-_", "+/")), true);
if (empty($data["user_id"]))
{
echo("");
}
$access_token = $data["oauth_token"];
$user_id = $data["user_id"];
$user = json_decode( file_get_contents( "https://graph.facebook.com/me?access_token=" . $access_token ) );
function get_facebook_cookie($app_id, $application_secret)
{
$args = array();
parse_str(trim($COOKIE["fbs" . $app_id], "\""), $args);
ksort($args);
$payload = "";
foreach ($args as $key => $value) {
if ($key != "sig")
{
$payload .= $key . "=" . $value;
}
}
if (md5($payload . $application_secret) != $args["sig"])
{
return null;
}
return $args;
}
$cookie = get_facebook_cookie($app_id, $app_sec);
【解决方案3】:
我建议你从官方facebook php-sdk example.php开始学习。
我发现开始和直接前进要容易得多。