我不知道为什么我收到此错误: 致命错误:未捕获OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。
我知道通常应该使用访问令牌, 但在facebook api中它清楚地说:
*没有公开可用数据的access_token:uid,name,first_name,middle_name,last_name,sex,locale *
所以他们说你不需要Locale的访问令牌,而这正是我所需要的。 请花点时间阅读我的代码:
// create the Facebook Graph SDK object
require_once('facebook.php');
$facebook = new Facebook(array(
'appId'=>'273312646075066', // replace with your value
'secret'=>'7a34df58fad450648249634c81ec17c5' // replace with your value
));
echo "<body>";
// Show the content for the person who liked the page
$user = $facebook->getUser();
$user_profile = $facebook->api('/me');
//setting the language variables
$fr = 'fr';
$nl = 'nl';
//setting the right content according to the language
if(stristr($user_profile['locale'],$nl))
{
$lang = "NL";
$_SESSION['lang']=$lang;
include "form.php";
}
?>
提前致谢!
编辑:我没有提到这应该是没有auth进程(批准应用程序)。客户的意愿
答案 0 :(得分:0)
您首先应首先通过authentication流程才能进行图表API呼叫
答案 1 :(得分:0)
您可以对图表进行基本调用,例如http://graph.facebook.com/zuck或http://graph.facebook.com/4或http://graph.facebook.com/cocacola。
所有这些工作。但是,请注意我没有使用任何访问令牌。
当您使用PHP SDK进行调用时,它会附加到当前访问令牌上。查看网络服务器流量本身,您就可以看到它。
所以这就是问题所在。要了解与您的网站互动的用户的用户ID(或用户名),您必须对其进行身份验证,或者只是询问他们的用户ID(他们非常不可能知道)。
答案 2 :(得分:0)
我找到了我的问题的解决方案,可以通过简单访问免费的facebook var 使用已签名的请求。
$signed_request = $facebook->getSignedRequest();
$locale = $signed_request['user']['locale'];
我可以在此页面找到我的用户区域设置的方式:
http://www.devquotes.com/2011/03/20/how-to-create-a-facebook-page-dynamically-translated/