Я использую следующий код для публикации на моей странице фейсбука, и он работает нормально. Теперь я хочу использовать 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");
, но есть очень ограниченные ресурсы о том, как их использовать. Я даже не уверен, что они будут соответствовать этой проблеме. Все, что мне нужно знать, это тот токен доступа, который мне нужно использовать, и каков соответствующий код для его настройки?