簡體   English   中英

OpenGraph:如何在 FB.api 中指定過濾器?

[英]OpenGraph: how can i specify a filter in FB.api?

我使用 OpenGraph 構建了一個 Facebook 應用程序,該應用程序允許用戶對音樂會進行評論,因此我定義了一個concert_id屬性,用戶可以在該屬性上插入評論。

現在我想顯示為某個concert_id插入的所有評論,但找不到方法。 如果我這樣做(在 JS 中)

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

我得到所有物品。 這個應用程序必須由移動設備使用,我認為獲取所有項目然后只過濾我需要的concert_id是不好的。 我需要做什么才能將 OpenGraph 中的where條件應用於自定義操作?

據我從 API 和 Facebook 開發人員頁面得知,不可能使用公共 Open Graph API 通過自定義操作屬性過濾調用。

我能想到的兩種選擇:

選項1:

通過創建自定義類別對象來實現類別過濾器:

如果“review”是自定義操作並且

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 是自定義對象。 您需要為每個類別創建一個對象類型。

選項 2:

為每個類別實施自定義操作,例如

review_scifi_movie
review_action_movie 

這些不是特別優雅的解決方案,但如果沒有其他工作,並且您真的不想在客戶端進行過濾,那么這些解決方案可能會用作黑客。

我不明白 javascript 或 opengraph ..

但是當我需要在 JAVA 中獲取任何用戶發表的評論時,我為此使用了FQL ,它檢索了我所有的評論,FQL 還用於獲取與 Facebook 相關的所有表。

Facebook API 不會為特定操作返回單獨的已發布對象,但這不是您唯一的問題。 看樣子,你是想把所有對音樂會的評論都帶進來,對吧? (也意味着其他用戶的那些)。

Facebook API 調用的“/me/”部分將僅返回由當前登錄的用戶執行的那些已發布操作。這對您不起作用,因為您希望所有用戶都執行這些操作

我能給出的唯一建議是創建一個簡單的 Web 服務,您可以在其中存儲對各種音樂會給出的所有評論。 使用此服務獲取對特定音樂會的評論。 (我在自己的應用程序中使用類似的方法進行評論)。

我認為您無法通過 JS SDK 實現這一目標。

不過,您可以在您的服務器中執行此操作,並且由於這是一個移動應用程序(或具有移動版本),因此這是將其從客戶端責任中刪除的另一個很好的理由。

在服務器端,您可以在發布時向 facebook 詢問已發布的操作,過濾它們然后返回響應。 您可以做的另一件事是將每個發布的操作保存在您的數據庫中(在每個操作發布上,您應該從 facebook 獲取一個 id,只需堅持),然后您就可以根據您想要的任何標准輕松過濾發布的操作/需要(因為您不再受 facebook api 的限制)。

開放圖的東西仍然很新而且還不成熟,例如你不能使用 FQL,這對你的情況可能很方便。 盡管我認為服務器解決方案最適合移動設備的計算。

我不知道確切但試試這個

如果(session.authResponse){

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

//這里是響應值 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM