私は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を使用してください)。
安全なリクエストhttps
から呼び出して、access_token
を提供する必要があります。
https://graph.facebook.com/19292868552_118464504835613/comments?access_token=XXX
編集:
オブジェクトを post
ドキュメントから追加しました。 comments
接続をクリックしてからaccess_token
を削除して、違いを確認してください。
Like
カウントとcomment
カウントを取得するには、PostOwnerID
だけでなく、PostID
とPostID
の組み合わせを使用する必要があります。
したがって、あなたの例では:
https://graph.facebook.com/153125724720582_184234384932460/comments
繰り返しますが、他の回答のいくつかで述べたように、https
メソッドとauth_token
を使用する必要があります
コメントでも同じ問題が発生しました。問題は、テストユーザーにアクセストークンを使用していたことです。テストユーザーは他のFBユーザー情報にアクセスできないため、ページからのコメントのみが表示されました。
ウルドゥー語には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のコメントが返されます。
健全性チェックとして、「read_stream」権限がありますか? 「read_stream」を使用するアクセストークンで完全なコメントを見ることができます。他の人が述べたように、httpsとアクセストークンも使用する必要があります...
ログイン成功後、このメソッドを呼び出す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();
}
15件のコメントのうち2件のみ
URLに制限パラメーターを追加します。
http://graph.facebook.com/[post_id]/comments?limit=1000&access_token=XXX
これにより、すべてのコメントが表示されます。
この場合、ストリームからのコメントの選択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
アプリログイン(http://developers.facebook.com/docs/authentication)を介して認証を試みてから、access_token prarameterでGraphAPIを呼び出します。
コメントの問題の総数を避けるために、このようなことをすることができます:
これにより、このオブジェクトのすべてのコメントが作成されます。
オブジェクトごとのコメント数を取得するには、次のような fql query を実行します。
SELECT comments FROM stream WHERE post_id = [yourpostid]
これは、comments配列のcountパラメーターの下にこのオブジェクトのカウント。