我实际上要做的是从我个人的Facebook个人资料页面(这不是粉丝页面)检索我的帖子/状态,并将其显示在我的网站上。另请注意,访问我网站的每个用户都应该能够查看我的状态,方法是与身份验证或其他类似操作无关。这是需要在服务器端生成的。
我知道您可以从像https://graph.facebook.com/MY_PROFILE_ID/feed?access_token=ACCESS_TOKEN这样的URL检索JSON字符串,因为我是从facebook开发人员(Graph API Explorer)页面尝试过的,这正是我需要的。
当我从Graph API Explorer生成访问令牌时,我可以选择权限,并根据所选的权限分别生成令牌,例如user_status,status_update等。
现在我想通过使用PHP-SDK实现这一目标,但我不知道如何生成与我在Graph API Explorer中生成的访问令牌相同的访问令牌。
执行此操作的基本方法是调用此处所示的getAccessToken()。问题是,当我使用从这个简单方法生成的令牌时,返回的JSON字符串将只显示我的基本信息。
$config = array(
'appId' => 'MY_APP_ID',
'secret' => 'MY_APP_SECRET',
);
$facebook = new Facebook($config);
$ACCESS_TOKEN = $facebook->getAccessToken();
如何为实例添加权限?我应该在某处分配参数吗?我花了很多时间阅读facebook API文档和其他一些论坛,但我找不到我需要的答案。
最后,如果我获得正确的访问令牌,那么我只需检索JSON字符串并使用我需要的内容进行解析。
感谢。
答案 0 :(得分:0)
您需要在代码中添加权限,以便使用fb js sdk add在此范围内添加,如下例所示:
$("#login").on('click',function(){
FB.login(function(response){
console.log(response);
},{scope: 'email,manage_pages,read_insights'});
});
或在php fb sdk下一个表单:
<?php
require 'server/fb-php-sdk/facebook.php';
$app_id = 'APP_ID';
$app_secret = 'APP_SECRET';
$app_namespace = 'APP_NAMESPACE';
$app_url = 'https://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>');
}
?>
添加权限最重要的是这部分:
$scope = 'email,publish_actions';
您可以在此链接中找到有关扩展权限的所有信息
https://developers.facebook.com/docs/reference/login/extended-permissions