1

FB SDK v3 を使用して Android アプリケーション内で Graph API を使用して、ユーザーが特定の Facebook ページを気に入っているかどうかを調べようとしています。

次の呼び出しは機能し、結果の各アイテムに関係する他のすべての詳細とともに、ユーザーのすべてのいいね! を報告します。

Request.executeGraphPathRequestAsync(session, "me/likes", new Request.Callback()

周辺データには興味がないので、興味のあるページを検索できるようにIDを戻したいのですが、次のようにパラメーターを追加すると...

Request.executeGraphPathRequestAsync(session, "me/likes?fields=id", new Request.Callback()

... 呼び出しから返されるオブジェクトはありません。Graph API エクスプローラーに同じクエリを投稿すると、期待される結果が返されます。

この質問に加えて、クエリの結果を最初からページ ID だけに制限することは可能ですか? その情報は既にわかっているからです。返される残りのデータは役に立たないので、ユーザーの帯域幅を不必要に消費したくありません。私は高低を検索しましたが、それは不可能のようです。例が示すように、ユーザーとページ iD の両方で制限しようとすると、FQL エクスプローラーでさえ機能しません。「AND page_id=xxx」をクエリに追加すると、空の結果セットが返されます。

4

2 に答える 2

6

私の知る限り、「executeGraphPathRequestAsync」のフィールドを使用してクエリを実行することはできません。代わりに「Request」を使用し、「RequestAsyncTask」で実行してください。短い例:

        String grapPath = "me/home";

        Bundle params = new Bundle();
        params.putString("fields", "type,id,object_id,created_time,from,picture,likes");
        params.putString("limit", "500");

        Request request = new Request(session, grapPath, params, HttpMethod.GET, new Callback()
        {

            @Override
            public void onCompleted(Response response)
            {
                if (response != null)
                {
                    Log.d(TAG_NAME, "response: " + response.toString());
                }

            }
        });

        RequestAsyncTask task = new RequestAsyncTask(request);
        task.execute();

私はあなたを助けることができたことを願っています:)

于 2013-04-29T08:44:45.560 に答える
-1

Facebook SDK は、「?access_token」をグラフ パス文字列の末尾に追加します。したがって、グラフ コマンドは次のようになります。

me/likes?fields=id?access_token

フィールドを params バンドルに分割します。

この問題は Facebook のバグ投稿で解決されていることがわかりました: http://developers.facebook.com/bugs/314504765319932?browse=search_5116b87d245900257505334

于 2013-02-21T00:01:33.440 に答える