我正在使用以下代码发布到我的 facebook 粉丝页面,它工作正常。现在我想使用 cronjob 来发布到 Facebook。我知道我必须用作访问令牌,但我不知道如何设置它。我尝试使用echo
我自己的访问令牌和页面的访问令牌并在 post api 中使用它,但这不起作用我收到此错误:
Uncaught OAuthException: An active access token must be used to query information about the current user.
这是我尝试过的代码:
require_once('scripts/facebook.php');
$config = array('appId' => 'xxx','secret' => 'xxx');
$params = array('scope'=>'user_likes,publish_actions,email,offline_access,publish_stream,manage_pages');
$facebook = new Facebook($config);
$user = $facebook->getUser();
if($facebook->getUser()) {
try {
$user_profile = $facebook->api('/me');
$access_token = $facebook->getAccessToken();
//echo "1. ".$access_token;
} catch(FacebookApiException $e) {
$login_url = $facebook->getLoginUrl($params);
error_log($e->getType());
error_log($e->getMessage());
}
} else {
$login_url = $facebook->getLoginUrl($params);
}
$page_id = "xxxxxxxxxxxxx";
$page_access_token = "";
$result = $facebook->api("/me/accounts");
foreach($result["data"] as $page) {
if($page["id"] == $page_id) {
$page_access_token = $page["access_token"];
//echo '<br>';
//echo "2. ".$page_access_token;
break;
}
}
$args = array(
'access_token' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'message' => stripslashes($image_caption).$animaged_gif,
'name' => stripslashes($image_caption).$animaged_gif,
'link' => "http://www.example.com/images.php?i=".$image_name,
'picture' => "http://www.example.com/thumbnails/".$image_name.".png",
'actions' => array(
'name' => 'See Pic',
'link' => "http://www.example.com/images.php?i=".$image_name
)
);
$post = $facebook->api("/$page_id/feed","post",$args);
如您所见,我尝试使用在回显自己的访问令牌时获得的实际访问令牌。但这没有用。我还使用了页面的访问令牌,但这也没有用。你能告诉我这里缺少什么或正确的方法是什么吗?经过进一步的搜索,我发现了setAccessToken
,$page_info = $fb->api("/".$sInfo['pageId']."?fields=access_token");
但是关于如何使用它们的资源非常有限。我什至不确定这些是否适合这个问题。我只需要知道我需要使用哪个访问令牌以及设置它的适当代码是什么?