2012-04-19 11 views
4

私はユーザーがコンサートのレビューを書くことを許可するOpenGraphを使用してFacebookアプリケーションを構築しているので、ユーザーがレビューを挿入できるconcert_id属性を定義しました。OpenGraph:FB.apiでどのようにフィルタを指定できますか?

ここでは、特定のconcert_idに挿入されたすべてのレビューを表示したいと思いますが、方法を見つけることはできません。 (JSで)

FB.api('/me/MY_APP:action', { limit: 0}, function(response) { 
    console.log(response); 
}); 

私はすべての項目を取得します。このアプリは、モバイルで消費する必要があります、私はそれがすべての項目を取得し、次に、必要なconcert_idだけをフィルタリングすることが悪いと思う。 OpenGraphの「どこで」条件をカスタムアクションに適用するには、どうすればよいですか?

答えて

2

Facebook APIは、特定のアクションの個々の公開オブジェクトを返しませんが、それはあなたの唯一の問題ではありません。それを見て、あなたはコンサートのために与えられた全てのレビューを持って来ようとしていますよね? (他のユーザーによるものも意味します)。

Facebook API呼び出しの "/ me /"部分は、現在ログインしているユーザーが行った公開アクションのみを返します。すべてのユーザーのものを望むように、あなたのためには機能しません。

私が与えることができる唯一の提案は、さまざまなコンサートに与えられたすべてのレビューを保存するシンプルなWebサービスを作成することです。このサービスを使用して、特定のコンサートのレビューを引き出します。 (私は自分のアプリでレビューのための同様の方法を使用します)。

5

APIとFacebookの開発者ページからわかる限り、公開Open Graph APIを使用してカスタムアクションプロパティで呼び出しをフィルタリングすることはできません。私は考えることができる

つのオプション:

オプション1:

カスタムカテゴリオブジェクトを作成することで、カテゴリフィルタを実装します。

を "レビュー" は、カスタムアクションと

GET https://graph.facebook.com/me/[name_space]:review 
ある場合

はすべてのレビューアクションを返します

GET https://graph.facebook.com/me/[name_space]:review/scifi_movie 
GET https://graph.facebook.com/me/[name_space]:review/action_movie 

ムービータイプに固有のアクションを返します.scifi_movieおよびaction_movieはカスタムオブジェクトです。各カテゴリに1つのオブジェクトタイプを作成する必要があります。

オプション2:

は、例えば、各カテゴリのカスタムアクションを実装します

review_scifi_movie 
review_action_movie 

他に何も動作し、あなたが本当にクライアント側でフィルタリングを行うにはしたくない場合は、これらは特にエレガントな解決策が、ハックとしておそらく有用ではありません。私はそのためのFQL使用しているすべてのユーザーによって行われたレビューをフェッチするためにJAVAに必要とするとき、私はjavascriptやopengraphを理解しない

+0

こんにちは、お返事ありがとうございますが、どうすれば に電話できますか?https://graph.facebook.com/me/[name_space]:review/scifi_movie? – Cris

+0

[name_space]は、Facebookでアプリを作成したときに指定した名前空間を指します。 –

+0

大丈夫ですが、/ scifi_movieを置いてもフィルタは適用されません。私のアプリではコンサートにコメントを挿入することができますが、 concert_idに基づいて; concert_idはカスタムプロパティですが、graph.facebook.com/me/[ns]:review/XYが呼び出されても機能しません。オプション2で書いたように、私はすべての項目に対してカスタムアクションを実装できますが彼らは1000以上であり、適用できません:-( – Cris

2

..

は、しかし、それは私をretrivedすべてreviewsとFQLも使用Facebookに関連するすべてのテーブルを取得します。

1

私はあなたがJS SDKでそれを取り除くことはできないと思います。

これはサーバーでも実行できますが、これはモバイルアプリ(またはモバイル版)であるため、これがクライアントの責任から削除する別の理由です。

サーバー側では、投稿されたときの公開された操作をFacebookに依頼してフィルタ処理し、応答を返すことができます。 もう1つのことは、公開された各アクションをdb内に保存することです(各アクションポストでは、FacebookからIDを取得してそのまま残す必要があります)。/need(あなたはもはやfacebook APIによって制限されていないので)。

オープングラフのものはまだかなり新しく、成熟していません。たとえば、FQLを使用することはできません。 私は、サーバーソリューションは、モバイルが関係している場合の計算に最適だとは思いますが。

0

i)は、正確に知っているが、(session.authResponse){

FB.api('/me', { 
    fields: 'name, picture' // here mention your fields 
    }, 
    function(response) { 
     if (!response.error) { 

//ここ応答値 }場合は、この

をしようとしません。

関連する問題