Graph APIを使用して、許可されたユーザーにページを「いいね」させたいと思います。
以下を投稿してみました
https://graph.facebook.com/${PAGE_ID}/likes?access_token=${ACCESS_TOKEN}
また、JSON応答本文に「無効なpost_idパラメーター」を伴うHTTPエラー500が表示されます。 /likes
リソースは、ページではなくウォールポストを好みます。これをページで機能させるにはどうすればよいですか?
Facebookは、公式の ビルトインLikeアクション を使用して、Facebook以外のURLの好みのサポートを発表しました。 publish_actions
権限が必要です。このグラフのURLはhttps://graph.facebook.com/[User FB ID]/og.likes?object=OG_OBJECT_URL&access_token=USER_ACCESS_TOKEN
です。
ただし、 ドキュメントの状態 のように、これを使用して現在Facebookのページを気に入ってもらうことはできません。
FacebookページまたはFacebook認証と統合されていないWebサイトの場合、開発者は「いいね」ボタンソーシャルプラグインを引き続き使用する必要があります。
2016年6月更新
/{user_id}/likes
documentation page の作成/更新/削除について説明されているように、Facebook APIを使用してページを好きにすることはまだできません。
このエンドポイントではこの操作を実行できません。
以前のバージョンでは、メッセージはより明確でした(以下の引用を参照)が、結果は同じです。不可能です。
2014年5月
/{user-id}/likes
ドキュメントページは、Facebookページの likes の公開について述べています。
APIを介してFacebookページをいいね!することはできないため、このEdgeを使用して公開することはできません。ユーザーがアプリ内のページをいいねしたい場合は、いいねボタンを使用する必要があります。
これは私に質問への答えを与えることができた最も明白で明確な声明です。
Facebook内のページタブまたはキャンバスページでこの機能が必要な場合(たとえば、類似ページ内からページを好きにできるようにするため)、回避策として、Tom WellsがLukeへの返信で提案した内容を含めることができます。最初に彼らのいいねボタンのiframeバージョンをページに埋め込み、次に単にEdge.create
次のようなJSのイベント:
FB.Event.subscribe('Edge.create',
function(response) {
alert('You liked the URL: ' + response);
// ...
}
);
コールバックでは、ユーザーがページにいいね!と言ったときに何が起こるかを処理できます。たとえば、同様のゲートページから移動したり、いいね!.
ユーザーがiFrameのようなボタンをクリックすると、JSコードはEdge.create
イベントは、問題のページのURLを指すようにiFrameが構成されていることを前提としています。
アプリがオープングラフアプリの場合、APIを使用することができ、ボタンはもう必要ありません。
https://developers.facebook.com/docs/opengraph/actions/builtin/likes/
Yelpのような特定のパートナーサイトを除き、これは許可されていないと思います。その理由はセキュリティです。ページにjavascriptを配置し、そのページにアクセスする全員が知らないうちに「いいね」することができます。
Facebookプラットフォーム開発者フォーラムの RLを「いいね」する方法 を参照してください。
次のコードを使用して、Facebook APIを使用してオブジェクトIDを持つオブジェクトを気に入ることができます
[FBRequestConnection startForPostWithGraphPath:[NSString stringWithFormat:@"/%@/likes",{object_id}] graphObject:nil completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
//do you customisation post like here
}];