それほど複雑ではないことを願っていますが、Facebook は API を大幅に変更したため (パーミッションなどに関して)、あまり役に立たない多くの古い情報を見つけました。状況は次のとおりです。
- ページタブ付きのFacebookページを手に入れました
- そのページに関連付けられているFacebookアプリを(タブを介して)取得しました。
- 私自身の WebApp は、Facebook PHP-SDK を介してページの壁に投稿し、各ユーザーはストリームでニュースを確認します。
質問: そのアプリを介してユーザーのタイムラインに投稿するにはどうすればよいですか?
これまでの私のコード(ページの壁に投稿する)
require 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx',
));
$loginUrl = $facebook->getLoginUrl();
$user = $facebook->getUser();
$page_id = 'xxxxxxxxxxxxxxxxxxxx';
$page_info = $facebook->api("/$page_id?fields=access_token");
if( !empty($page_info['access_token']) ) {
$args = array(
'access_token' => $page_info['access_token'],
'message' => "Neuer Test!"
);
$post_id = $facebook->api("/$page_id/feed","post",$args);
} else {
$permissions = $facebook->api("/me/permissions");
if( !array_key_exists('publish_stream', $permissions['data'][0]) ||
!array_key_exists('manage_pages', $permissions['data'][0])) {
header( "Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, manage_pages")) );
}
}
これは正常に機能していますが、メッセージは、ページを気に入ったユーザーのタイムラインでは利用できず、自分のストリームでのみ利用できます。彼らのタイムラインに公開することは可能ですか?