次のコードを使用してFacebookのファンページに投稿していますが、正常に機能しています。Facebookに投稿するためにcronjobを使用したいと思います。アクセストークンとして使用する必要があることはわかっていますが、設定方法がわかりません。自分のアクセストークンとページのアクセストークンを使用して、ポストAPIで使用しようとしecho
ましたが、機能しませんでした。次のエラーが発生しました。
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");
たが、使い方に関するリソースは非常に限られています。それらがこの問題に適切であるかどうかさえわかりません。私が知る必要があるのは、使用する必要のあるアクセストークンと、それを設定するための適切なコードは何ですか?