0

考慮到以下調用以在對象上發佈操作,確定用戶是否已針對所述對象採取操作的代碼是什麼?將「post」切換爲「get」會拉取所有用戶的操作(不僅僅是當前的obj),並且將第一個參數替換爲對象的URL會引發錯誤。檢查Facebook開放圖形對象的操作狀態

  • 說明:我想知道用戶是否在昨天或之前的某個時間採取了措施。不是目前的通話是否成功。

     FB.api('/me/namespace:action', 'post', likeOpts, 
         function(response) { 
          if (!response || response.error) { 
           console.log(response.error); 
          } else { 
           // success 
          } 
         }); 
    

回答

0

我的預期問題的範圍已經改變,所以這個答案不是100%直接的,但這是我最終使用的,我認爲這可能有益於未來的觀衆。

我通過js sdk使用以下FQL查詢來查明特定用戶是否喜歡特定對象。如果他們有,它會返回一個數組與他們的ID。如果他們沒有,它會返回一個空數組:

 FB.api({ 
      method: 'fql.query', 
      query: 'select user_id from like where user_id=' + UserIDVar + ' and object_id=' + ActionIDVar, 
      return_ssl_resources: 1 
     }, function(response){ 
      console.log(response); 
     }); 

的FQL查詢可以進行修改,以滿足您的需求,並且該文檔可以在這裏引用: https://developers.facebook.com/docs/reference/fql/like/

0

沒有這樣的調用來完成這個。

您應該將以前的操作保存到您的數據庫(或保存一個用戶已經執行操作的布爾值),或者在/ me/namespace:action的get response中檢查上一個操作。在該響應中,您可以篩選當前對象的URL。

如果這是一個讀取操作,則在讓用戶調用兩次操作時會發生錯誤。

如果該操作返回操作實例ID,則調用成功並保存。

FB.api(
'/me/namespace:action', 
'post', 
{ OBJECT_TYPE: 'OBJECT_URL' }, 
function(response) { 
    if (!response || response.error) { 
     alert('Error occured'); 
     console.log(response.error); 
    } else { 
     alert('Code was successful! Action ID: ' + response.id); 
    } 
}); 
+0

你誤會我的意思。我的意思是「如果用戶昨天或以前採取了行動,我該如何判斷」。謝謝! – Matrym 2012-07-12 01:34:09

+0

@Matrym您應該將以前的操作保存到您的數據庫(或保存一個用戶已經執行操作的布爾值),或者在/ me /命名空間的獲取響應中檢查上一個操作:action – phwd 2012-07-12 01:43:14

+0

如果將答案更改爲「這是不可能的」,並附上您的評論,如果沒有其他人提出解決方案,我會在幾天內將其標記爲正確。謝謝你的時間。 – Matrym 2012-07-12 01:47:20

0

應該出現在他們饋您可以檢查用戶的飼料,如果他們給你的訪問令牌使用的應用程序。我做了一個測試/打開圖來測試這一點,但既然是我,我可以檢查我自己的飼料。與其他用戶一樣,您必須在訪問令牌到期之前捕獲訪問令牌,並將其填充到FB圖形瀏覽器工具中。

+0

如果它是一年前完成的(成千上萬個帖子前),我會很擰。還是)感謝你的建議! – Matrym 2012-07-12 01:59:51

+0

您可以按照應用編號 – 2012-07-12 02:07:59

+0

進行過濾。實際上,洞察會爲您提供度量標準,但不會綁定到用戶。 – 2012-07-12 02:08:28