it-swarm.com.de

Rufen Sie Facebook-Post-Kommentare mithilfe der Graph-API ab

Ich habe versucht, Facebook-Kommentare zu erhalten:

http://graph.facebook.com/[post_id]/comments

Es ergibt sich nur 2 von 15 Kommentaren und ohne count info.

{
    "data": [
        {
            "id": "[post_id]",
            "from": {
                "name": "[name]",
                "id": "[id]"
             },
             "message": "[message]",
             "created_time": "2011-01-23T02:36:23+0000"
        },
        {
             "id": "[id]",
             "from": {
             "name": "[name]",
                 "id": "[id]"
             },
            "message": "[message]",
            "created_time": "2011-01-23T05:16:56+0000"
        }
    ]
}

Weiß jemand warum nur 2 Kommentare?

Außerdem möchte ich Kommentare abrufen (Standardnummer) oder Kommentare mit meiner Begrenzungsnummer abrufen und deren Kommentare zählen. Irgendeine Idee? (Bitte Graph API verwenden).

41
Jeaf Gilbert

Sie müssen es von einer sicheren Anfrage https aus aufrufen und einen access_token angeben: 

https://graph.facebook.com/19292868552_118464504835613/comments?access_token=XXX

EDIT:
Objekt aus dem post Dokument hinzugefügt. Klicken Sie auf die comments-Verbindung und entfernen Sie den access_token. Versuchen Sie, den Unterschied zu erkennen.

37
ifaour

Um die Like-Zählung und die comment-Zählung abzurufen, müssen Sie eine Kombination aus PostOwnerID und PostID verwenden, nicht nur die PostID.

Für Ihr Beispiel wäre es also:

https://graph.facebook.com/153125724720582_184234384932460/comments

Wie in einigen anderen Antworten erwähnt, müssen Sie die https-Methode zusammen mit einem auth_token verwenden.

4
codingbadger

Ich habe das gleiche Problem mit Kommentaren erfahren. Das Problem war, dass ich ein Zugriffstoken für einen Testbenutzer verwendete. Da Testbenutzer keinen Zugriff auf Informationen anderer FB-Benutzer haben, wurden nur die Kommentare von Seiten angezeigt.

3
Nikolay Borisov

Es gibt ein Wort JUGAAR in Urdu, das bedeutet, einen Ausweg zu finden, nur um die Arbeit zu erledigen. Also für den gleichen Zweck habe ich diesen JUGAAR gemacht, ich hoffe es hilft. 

$contents = file_get_contents("http://graph.facebook.com/" . $_GET['id'] . "/likes");
if (substr_count($contents, 'name')>0) {
    echo substr_count($contents, 'name') . " people like this album";
}

Ich bin übrigens auch neu bei diesem Fb-Zeug, ich suche Hilfe, um Kommentare zu posten. Wenn ich versuche, graph.api./id/comments?access_token=sdfsfsdf&message="D "zu verwenden, werden immer noch Kommentare für die ID zurückgegeben, statt zu posten.

2
Ch Ali Humayun

Besitzen Sie als Berechtigungsprüfung die Berechtigung "read_stream"? Ich kann die vollständigen Kommentare mit meinem Zugriffstoken anzeigen, das "read_stream" verwendet. Wie von anderen Leuten erwähnt, müssen Sie auch https und Zugriffstoken verwenden ...

1
Enrico Susatyo

Nach erfolgreichem Login diese Methode aufrufen facebookComments ()

parameters.putString ("Felder", "Nachricht"); .............// Es ist wichtig

 AccessToken accessToken = AccessToken.getCurrentAccessToken();
    public void facebookComments() {
        try {
            getFriends(accessToken, new GraphRequest.Callback() {
                        public void onCompleted(GraphResponse response) {
                            Log.e("keshav", "one" + response);
                            CommonMethod.showAlert("res  --> " + response, MainActivity.this);
                        }
                    }
            );
        } catch (Exception e) {
            CommonMethod.showAlert("Exception is -> " + e, MainActivity.this);
        }
    }

    public void getFriends(AccessToken token, GraphRequest.Callback callback)
    {
        // TODO Comments Working but id return only
        GraphRequest requestt = new GraphRequest(token, "744511125731315_751199848395776/comments",
                null, HttpMethod.GET, callback);
        Bundle parameters = new Bundle();
        parameters.putString("fields", "id");           // todo in use imp
        parameters.putString("fields", "name");           // todo in use imp
        parameters.putString("fields", "from");           // todo in use imp
        parameters.putString("fields", "message");           // todo in use imp
        requestt.setParameters(parameters);
        requestt.executeAsync();
    }
0
Keshav Gera

Es ergeben sich nur 2 von 15 Kommentaren

Fügen Sie der URL einen Grenzparameter hinzu: 

 http://graph.facebook.com/[post_id]/comments?limit=1000

Dies sollte alle Kommentare zeigen.

0
Kai Noack

SELECT comments FROM stream WHERE post_id = [IhrePost-ID] sollte in diesem Fall nicht funktionieren.

die ID, die zurückgegeben wird, nachdem ein Graph aufgerufen wurde, um auf der Pinnwand eines Benutzers zu posten (mithilfe von access_token einer Anwendung), hat die Form abcdef_qwerty (unterstrichene separate ID) Kommentartabelle hat die Form "lmnop" ..

um die Anzahl der Like-Kommentare und Kommentare zu dieser Beitrags-ID des Formulars "abcdef_qwerty" abzurufen, ist das Aufrufen eines Diagramms mit der von der App generierten Zugriffstoken die einzige Lösung.

etwas wie: https://graph.facebook.com/100002619172565_117323155031656?access_token=xxxxxxxxxxxxx

0
mjs

Versuchen Sie, sich über App Login (http://developers.facebook.com/docs/authentication) zu authentifizieren und anschließend GraphAPI mit access_token -Parameter aufzurufen. 

0
Pavel Surmenok

Sie können so etwas tun, um die ganze Anzahl von Kommentaren zu vermeiden:

  1. Holen Sie sich das Objekt ( ein Beitrag gilt als Objekt in der Graph API ) -ID - wie ich aus Ihrer Frage verstehe, haben Sie es schon?
  2. Erstellen Sie ein Comments Social Plugin mit dieser ID und holen Sie sich den Code dafür.
  3. Betten Sie den Code in Ihre Site ein.

Dies führt zu allen Kommentaren für dieses Objekt.

Um die Anzahl der Kommentare pro Objekt zu ermitteln, können Sie eine fql-Abfrage ausführen, etwa wie folgt:

SELECT comments FROM stream WHERE post_id = [yourpostid]

Dies gibt im comments -Array unter dem count -Parameter die Anzahl der Zählungen für dieses Objekt zurück.

0
t0mgs