Php 同样的facebook问题。。。OAutheException:必须使用活动访问令牌来查询有关当前用户的信息
所以这很好用。。。但是当我刷新页面两次(或者快速单击包含此脚本的两个页面)时,会出现此错误 OAutheException:必须使用活动访问令牌来查询有关当前用户的信息。 有什么想法吗Php 同样的facebook问题。。。OAutheException:必须使用活动访问令牌来查询有关当前用户的信息,php,facebook,api,Php,Facebook,Api,所以这很好用。。。但是当我刷新页面两次(或者快速单击包含此脚本的两个页面)时,会出现此错误 OAutheException:必须使用活动访问令牌来查询有关当前用户的信息。 有什么想法吗 <?php $app_id = '***************'; $app_secret = '**************'; $app_namespace = '****************'; $app_url = 'http://apps.facebook.com/' .
<?php
$app_id = '***************';
$app_secret = '**************';
$app_namespace = '****************';
$app_url = 'http://apps.facebook.com/' . $app_namespace . '/';
$scope = 'email,publish_actions';
// Init the Facebook SDK
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
));
// Get the current user
$user = $facebook->getUser();
// If the user has not installed the app, redirect them to the Login Dialog
if (!$user) {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => $scope,
'redirect_uri' => $app_url,
));
print('<script> top.location.href=\'' . $loginUrl . '\'</script>');
}
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me', 'POST');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
//<img src="https://graph.facebook.com/?php echo $user; ?/picture">
//?php print_r($user_profile); ?
?>
我个人觉得自己管理访问令牌更容易。Facebook的Graph API通过要求传入access\u令牌
来保护受保护的端点。PHPSDK将这一点抽象出来,但我对Facebook处理信息从来都不满意,因为有时候它根本不起作用。这并不是说这个库不好,只是说我没有正确地使用它。记住这个警告
看起来您正在使用Facebook画布应用程序。当用户首次成功进行身份验证时,Facebook将在$\u GET
中发送一个访问令牌。此时,您应该将其保存到数据库中,因为该访问令牌可以使用3个月左右
此时,从那时起,您可以在调用参数中传入access\u令牌
:
try {
$user_profile = $facebook->api('/me', 'POST', array(
"access_token" => '' // access token goes here
));
} catch (FacebookApiException $e) {
// error handling
}
考虑到Facebook返回的错误是您需要访问令牌才能调用/me
资源,它看起来像$Facebook->getUser()代码>正在返回某些内容。您可能需要再次检查它是什么
当我在这里的时候,你用的是这样的逻辑:
if (!conditional) {
// do something
}
if (conditional) {
// do something else
}
令人困惑。使用else
:
if (conditional) {
// do something
} else {
// do something else
}
我个人觉得自己管理access\u令牌更容易。Facebook的Graph API通过要求传入access\u令牌
来保护受保护的端点。PHPSDK将这一点抽象出来,但我对Facebook处理信息从来都不满意,因为有时候它根本不起作用。这并不是说这个库不好,只是说我没有正确地使用它。记住这个警告
看起来您正在使用Facebook画布应用程序。当用户首次成功进行身份验证时,Facebook将在$\u GET
中发送一个访问令牌。此时,您应该将其保存到数据库中,因为该访问令牌可以使用3个月左右
此时,从那时起,您可以在调用参数中传入access\u令牌
:
try {
$user_profile = $facebook->api('/me', 'POST', array(
"access_token" => '' // access token goes here
));
} catch (FacebookApiException $e) {
// error handling
}
考虑到Facebook返回的错误是您需要访问令牌才能调用/me
资源,它看起来像$Facebook->getUser()代码>正在返回某些内容。您可能需要再次检查它是什么
当我在这里的时候,你用的是这样的逻辑:
if (!conditional) {
// do something
}
if (conditional) {
// do something else
}
令人困惑。使用else
:
if (conditional) {
// do something
} else {
// do something else
}