Eine Seite mit der Facebook Graph API "Gefällt mir"

70

Verwenden der Graph-API Ich möchte, dass ein autorisierter Benutzer eine Seite "mag".

Ich habe versucht, Folgendes zu posten

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

Und ich erhalte einen HTTP-Fehler 500, begleitet von "Ungültiger post_id-Parameter" im JSON-Antworttext. Anscheinend ist die /likesRessource dafür geeignet, einen Pinnwandbeitrag und keine Seite zu mögen. Wie bringe ich das dazu, mit einer Seite zu arbeiten?

Tom Wells
quelle

Antworten:

41

Facebook hat Unterstützung für das Liken von URLs außerhalb von Facebook mithilfe der offiziellen integrierten Like-Aktion angekündigt . Sie benötigen publish_actionsBerechtigungen. Die Grafik-URL hierfür lautet: https://graph.facebook.com/[User FB ID]/og.likes?object=OG_OBJECT_URL&access_token=USER_ACCESS_TOKEN

Sie können dies jedoch derzeit nicht verwenden, um eine Seite auf Facebook zu mögen, wie in der Dokumentation angegeben :

Für Facebook-Seiten oder Websites, die nicht in die Facebook-Authentifizierung integriert sind, sollten Entwickler weiterhin das Social-Plugin "Gefällt mir" verwenden.

bkaid
quelle
Ich glaube nicht, dass Sie eine Seite mit dem eingebauten ähnlichen Kation mögen können. Kannst du bestätigen?
AbhinavVinay
Gibt es eine Facebook-Entwicklerressource, die besagt, dass Sie integrierte Funktionen auf Facebook-Seiten nicht verwenden können? Nicht, dass ich dir nicht glaube, aber ich versuche zu verstehen, warum das so ist. Verweisen Sie auf diese Aussage auf der integrierten Like-Dokument-Seite: "Die Verwendung der integrierten Like-Aktion durch eine App muss wie bei jeder Open Graph-Aktion eingereicht und genehmigt werden. Für Facebook-Seiten oder Websites, die dies tun." Entwickler, die nicht in die Facebook-Authentifizierung integriert sind, sollten weiterhin das Social-Plugin "Gefällt mir" verwenden. "?
Sean Glover
Dies ist die Fehlermeldung, die von der Diagramm-API zurückgegeben wurde, als ich versuchte, eine Facebook-Seite zu mögen: "(# 100) Like-Aktionen werden für Objekte dieses Typs noch nicht unterstützt."
Sean Glover
@BK. Bedeutet dies tatsächlich, dass es keine andere Möglichkeit gibt, eine Facebook-Seite zu mögen, als das Plugin "Gefällt mir" zu verwenden?
Mihai Bujanca
2
Wie kann ich die OG_OBJECT_URL von einer Seite herausfinden, die ich möchte?
Dellasavia
11

Update Juni 2016

Es ist immer noch nicht möglich, eine Seite mit der Facebook-API zu mögen, wie auf der /{user_id}/likes Dokumentationsseite zum Erstellen / Aktualisieren / Löschen angegeben:

Sie können diesen Vorgang auf diesem Endpunkt nicht ausführen.

In früheren Versionen war die Meldung klarer (siehe das Zitat unten), aber das Ergebnis ist das gleiche: Es ist nicht möglich.

Mai 2014

Auf der /{user-id}/likesDokumentationsseite finden Sie Informationen zum Veröffentlichen von Likes von Facebook-Seiten:

Sie können mit diesem Rand nicht veröffentlichen, da es nicht möglich ist, eine Facebook-Seite über eine API zu mögen . Sie sollten die Schaltfläche "Gefällt mir" verwenden, wenn Benutzer eine Seite in Ihrer App mögen sollen.

Dies ist die offensichtlichste und klarste Aussage, die mir eine Antwort auf die Frage geben konnte.

Tamer Shlash
quelle
5

Wenn Sie diese Funktionalität in einer Seitenregisterkarte oder einer Canvas-Seite innerhalb von Facebook wünschen (z. B. um die Seite innerhalb einer ähnlichen Seite zu mögen), kann eine Umgehung dessen beinhalten, was Tom Wells in seiner Antwort an Luke vorgeschlagen hat. Sie binden zuerst die Iframe-Version der Schaltfläche "Gefällt mir" in Ihre Seite ein und warten dann einfach wie folgt auf das edge.createEreignis in Ihrem JS:

FB.Event.subscribe('edge.create',
    function(response) {
        alert('You liked the URL: ' + response);
        // ...
    }
);

Im Rückruf können Sie festlegen, was passiert, wenn dem Benutzer die Seite gefallen hat, z. B. von der Like-Gate-Seite weg navigieren oder nur gemochte Inhalte anzeigen.

Wenn der Benutzer auf die Schaltfläche iFrame like klickt, sollte Ihr JS-Code das edge.createEreignis erhalten, vorausgesetzt, der iFrame wurde so konfiguriert, dass er auf die URL der betreffenden Seite verweist.

Keith
quelle
1
Ich denke, das OP fragt, wie dies programmatisch zu tun ist, vielleicht um ein "Gefällt mir" durch ein benutzerdefiniertes Steuerelement zu leiten.
James P.
3

Ich glaube, dies ist nur für bestimmte Partnerseiten wie yelp erlaubt. Der Grund ist die Sicherheit. Sie können Javascript auf eine Seite setzen und jeden, der diese Seite besucht, ohne sein Wissen "Gefällt mir".

Siehe Wie "mag" ich eine URL? auf dem Facebook Platform Developer Forum

Luke
quelle
2
Nun, nicht wirklich - die Grafik-API verwendet ein Zugriffstoken, um diese Art von Sicherheitsproblemen zu verhindern, indem der Benutzer aufgefordert wird, explizit Zugriff auf die Facebook-Anwendung zu gewähren. Wie auch immer, ich habe das Problem gelöst, indem ich Facebooks bevorzugte Methode gewählt habe, einen Iframe in die Schaltfläche "Gefällt mir" einzubetten (Grafik-API öffnen).
Tom Wells
4
"Gefällt mir" (über iframe oder fbml) ist keine Anwendung, daher sind keine zusätzlichen Berechtigungen erforderlich. Sie müssen lediglich bei Facebook angemeldet sein. Ich bin immer noch auf der Suche nach einer Möglichkeit, einen benutzerdefinierten Like-Button nicht in einem auf Facebook gehosteten Iframe zu haben.
Luke
Luke - ich auch! Lassen Sie uns wissen, ob Sie eine Möglichkeit finden, eine benutzerdefinierte Schaltfläche (in meinem Fall die Android-API) zu verwenden, um eine Seite oder eine App zu mögen.
Andrew Mackenzie
0

Sie können ein Objekt mit seiner Objekt-ID mithilfe der Facebook-API mithilfe des folgenden Codes mögen

[FBRequestConnection startForPostWithGraphPath:[NSString stringWithFormat:@"/%@/likes",{object_id}] graphObject:nil completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
   //do you customisation post like here
}];
Avinash
quelle