web-dev-qa-db-ja.com

Graph APIを使用してFacebook投稿コメントを取得する

私はFacebookのコメントを取得しようとしました:

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

結果は15コメントのうち2つだけで、count情報はありません。

{
    "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"
        }
    ]
}

なぜ2つのコメントしかないのか、誰でも知っていますか?

また、コメント(既定の数)を取得するか、制限数でコメントを取得し、そのコメント数を取得します。何か案が? (Graph APIを使用してください)。

42
Jeaf Gilbert

安全なリクエストhttpsから呼び出して、access_tokenを提供する必要があります。

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

編集:
オブジェクトを post ドキュメントから追加しました。 comments接続をクリックしてからaccess_tokenを削除して、違いを確認してください。

39
ifaour

Likeカウントとcommentカウントを取得するには、PostOwnerIDだけでなく、PostIDPostIDの組み合わせを使用する必要があります。

したがって、あなたの例では:

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

繰り返しますが、他の回答のいくつかで述べたように、httpsメソッドとauth_tokenを使用する必要があります

5
codingbadger

コメントでも同じ問題が発生しました。問題は、テストユーザーにアクセストークンを使用していたことです。テストユーザーは他のFBユーザー情報にアクセスできないため、ページからのコメントのみが表示されました。

4
Nikolay Borisov

ウルドゥー語にはJUGAARという言葉があります。これは、仕事を終わらせるために、道を見つけることを意味します。そのため、私はこの目的のためにこのJUGAARを作成しました。

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

ちなみに、私はこのFbの初心者でもありますが、コメントを投稿するためのヘルプを探しています。 graph.api./id/comments?access_token=sdfsfsdf&message="D "を使用しようとすると、投稿する代わりにIDのコメントが返されます。

3
Ch Ali Humayun

健全性チェックとして、「read_stream」権限がありますか? 「read_stream」を使用するアクセストークンで完全なコメントを見ることができます。他の人が述べたように、httpsとアクセストークンも使用する必要があります...

2
Enrico Susatyo

ログイン成功後、このメソッドを呼び出すfacebookComments()

parameters.putString( "fields"、 "message"); ............. //その重要性

 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();
    }
1
Keshav Gera

15件のコメントのうち2件のみ

URLに制限パラメーターを追加します。

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

これにより、すべてのコメントが表示されます。

1
Kai Noack

この場合、ストリームからのコメントの選択WHERE post_id = [yourpostid]は機能しません。

(アプリケーションのaccess_tokenを使用して)ユーザーのウォールに投稿するためにグラフ呼び出しを正常に行った後に返されるIDは、abcdef_qwerty(アンダースコア区切りのID)の形式です。ここで、コメントテーブルのpost_id 「lmnop」形式の..

「abcdef_qwerty」形式のこの投稿IDでのいいねやコメントの数を取得するには、アプリが生成したアクセストークンでグラフ呼び出しを行うことが唯一の解決策のようです。

次のようなもの: https://graph.facebook.com/100002619172565_117323155031656?access_token=xxxxxxxxxxxxx

1
mjs

アプリログイン(http://developers.facebook.com/docs/authentication)を介して認証を試みてから、access_token prarameterでGraphAPIを呼び出します。

1
Pavel Surmenok

コメントの問題の総数を避けるために、このようなことをすることができます:

  1. オブジェクトの( Graph APIでは投稿はオブジェクトと見なされます )IDを取得します。あなたの質問から理解できるように、すでに持っていますか?
  2. このIDで Comments Social Plugin を作成し、そのコードを取得します。
  3. サイトにコードを埋め込みます。

これにより、このオブジェクトのすべてのコメントが作成されます。

オブジェクトごとのコメント数を取得するには、次のような fql query を実行します。

SELECT comments FROM stream WHERE post_id = [yourpostid]

これは、comments配列のcountパラメーターの下にこのオブジェクトのカウント。

1
t0mgs