我一直按照开发人员文档中的说明进行操作,并且在使用 PHP-SDK 教程时遇到了问题。
https://developers.facebook.com/docs/reference/php/facebook-api/
上面 URL 中的“通过 Graph API 获取用户的个人资料并打印他们的姓名”示例在尝试期间似乎中断了,据我所知,它收到了错误的访问令牌。
错误消息:致命错误:未捕获的 OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。在第 1254 行抛出 myURL/sdk/base_facebook.php
我可以通过 FQL 查询成功获得有效的访问令牌,但仅在使用 PHP SDK 命令 $facebook->api('/me','GET') 时收到错误消息(如文档和教程所示)以及从什么我可以告诉它应该即时获得有效的访问令牌,但不是。
在这个例子中我打算在其他地方使用什么东西吗?我不确定我做错了什么。
[编辑显示代码]
<?php
// Remember to copy files from the SDK's src/ directory to a
// directory in your application on the server, such as php-sdk/
require_once('php-sdk/facebook.php');
$config = array(
'appId' => 'MY_APP_ID',
'secret' => 'MY_APP_SECRET',
);
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
?>
<html>
<head></head>
<body>
<?php
if($user_id) {
// We have a user ID, so probably a logged in user.
// If not, we'll get an exception, which we handle below.
try {
$user_profile = $facebook->api('/me','GET');
echo "Name: " . $user_profile['name'];
} catch(FacebookApiException $e) {
// If the user is logged out, you can have a
// user ID even though the access token is invalid.
// In this case, we'll get an exception, so we'll
// just ask the user to login again here.
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
error_log($e->getType());
error_log($e->getMessage());
}
} else {
// No user, print a link for the user to login
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
}
?>
</body>
</html>