web-dev-qa-db-ja.com

Facebook Graph APIを使用してページを「いいね」

Graph APIを使用して、許可されたユーザーにページを「いいね」させたいと思います。

以下を投稿してみました

https://graph.facebook.com/${PAGE_ID}/likes?access_token=${ACCESS_TOKEN}

また、JSON応答本文に「無効なpost_idパラメーター」を伴うHTTPエラー500が表示されます。 /likesリソースは、ページではなくウォールポストを好みます。これをページで機能させるにはどうすればよいですか?

70
Tom Wells

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サイトの場合、開発者は「いいね」ボタンソーシャルプラグインを引き続き使用する必要があります。

41
bkaid

2016年6月更新

/{user_id}/likesdocumentation page の作成/更新/削除について説明されているように、Facebook APIを使用してページを好きにすることはまだできません。

このエンドポイントではこの操作を実行できません。

以前のバージョンでは、メッセージはより明確でした(以下の引用を参照)が、結果は同じです。不可能です。

2014年5月

/{user-id}/likesドキュメントページは、Facebookページの likes の公開について述べています。

APIを介してFacebookページをいいね!することはできないため、このEdgeを使用して公開することはできません。ユーザーがアプリ内のページをいいねしたい場合は、いいねボタンを使用する必要があります。

これは私に質問への答えを与えることができた最も明白で明確な声明です。

10
Tamer Shlash

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が構成されていることを前提としています。

5
Keith

アプリがオープングラフアプリの場合、APIを使用することができ、ボタンはもう必要ありません。

https://developers.facebook.com/docs/opengraph/actions/builtin/likes/

5
Israhack

Yelpのような特定のパートナーサイトを除き、これは許可されていないと思います。その理由はセキュリティです。ページにjavascriptを配置し、そのページにアクセスする全員が知らないうちに「いいね」することができます。

Facebookプラットフォーム開発者フォーラムの RLを「いいね」する方法 を参照してください。

3
Luke

次のコードを使用して、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
}];
0
Avinash