web-dev-qa-db-fra.com

Récupérer les commentaires sur Facebook à l'aide de l'API graphique

J'ai essayé d'obtenir des commentaires sur Facebook en utilisant:

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

Il en résulte que 2 des 15 commentaires, et sans 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"
        }
    ]
}

Quelqu'un sait pourquoi seulement 2 commentaires?

De plus, je souhaite récupérer des commentaires (numéro par défaut) ou des commentaires avec mon nombre limite et obtenir le nombre de commentaires. Une idée? (S'il vous plaît utiliser Graph API).

41
Jeaf Gilbert

Vous devez l'appeler à partir d'une requête sécurisée https et fournir un access_token

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

MODIFIER:
Ajouté l’objet du post document. essayez de cliquer sur la connexion comments puis supprimez le access_token et essayez de voir la différence.

37
ifaour

Pour obtenir le nombre Like et le comment, vous devez utiliser une combinaison du PostOwnerID et du PostID et pas seulement du PostID.

Donc, pour votre exemple, ce serait:

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

Encore une fois, comme mentionné dans certaines des autres réponses, vous devez utiliser la méthode https avec un auth_token

4
codingbadger

J'ai eu le même problème avec les commentaires. Le problème était que j'utilisais un jeton d'accès pour un utilisateur test. Les utilisateurs du test n'ayant pas accès aux informations des autres utilisateurs du FB, seuls les commentaires des pages ont été affichés.

3
Nikolay Borisov

Il y a un Word JUGAAR en ourdou qui signifie, trouver un moyen de sortir, juste pour faire le travail. Donc, dans le même but, j’ai réalisé ce JUGAAR, j’espère que cela aidera. 

$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";
}

En passant, je suis également novice dans ce domaine Fb, je cherche de l'aide pour poster des commentaires. Lorsque j'essaie d'utiliser graph.api./id/comments?access_token=sdfsfsdf&message="D "il renvoie toujours des commentaires pour l'id au lieu de les poster.

2
Ch Ali Humayun

En tant que vérification d'intégrité, avez-vous l'autorisation "read_stream"? Je peux voir les commentaires complets avec mon jeton d'accès qui utilise "read_stream". Comme mentionné par d'autres personnes, vous devez également utiliser https et le jeton d'accès ...

1
Enrico Susatyo

Après la connexion réussie, appelez cette méthode facebookComments ()

parameters.putString ("champs", "message"); .............// C'est important

 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

Il résulte seulement 2 de 15 commentaires

Ajoutez un paramètre de limite à l'URL: 

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

Cela devrait montrer tous les commentaires.

0
Kai Noack

SELECT commentaires from stream WHERE post_id = [votre_postide] ne fonctionnera pas dans ce cas ..

l'identifiant qui est renvoyé après avoir passé un appel de graphe à publier sur le mur d'un utilisateur (à l'aide de access_token d'une application) est de la forme abcdef_qwerty (identificateur de soulignement séparé) Le tableau de commentaires est de la forme "lmnop".

pour obtenir le nombre de "like" et les commentaires sur cet article "id de la forme" abcdef_qwerty "faisant un appel de graphe avec le jeton d'accès généré par l'application semble être la seule solution.

quelque chose comme: https://graph.facebook.com/100002619172565_117323155031656?access_token=xxxxxxxxxxxxx

0
mjs

Essayez de vous authentifier via App Login (http://developers.facebook.com/docs/authentication), puis appelez GraphAPI avec le paramètre access_token. 

0
Pavel Surmenok

Vous pouvez faire quelque chose comme ceci pour éviter le nombre total de problèmes de commentaires:

  1. Récupérer l'objet ( un article est considéré comme un objet dans l'API de graphes ) ID - d'après ce que j'ai compris de votre question, vous l'avez déjà?
  2. Créez un Comments Social Plugin avec cet ID et obtenez le code correspondant.
  3. Intégrez le code sur votre site.

Cela entraînera tous les commentaires pour cet objet.

Pour obtenir le nombre de commentaires par objet, vous pouvez exécuter une requête fql , quelque chose comme ceci:

SELECT comments FROM stream WHERE post_id = [yourpostid]

Cela retournera dans le tableau comments sous le paramètre count le nombre de comptes pour cet objet.

0
t0mgs