簡體   English   中英

檢查Facebook開放圖對象的動作狀態

[英]Checking action status of a Facebook Open Graph Object

給定以下調用以在對象上發布操作,那么用於確定用戶是否已針對該對象執行操作的代碼是什么? 將“ post”切換為“ get”會拉動所有用戶的操作(不僅限於當前obj),並且用對象的URL替換第一個參數會引發錯誤。

  • 澄清:我想知道用戶是昨天還是之前某個時間執行了該操作。 當前通話是否成功。

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

沒有實現此目的的電話。

您應該將先前的操作保存到數據庫中(或保存用戶已執行操作的布爾值),或者檢查/ me / namespace:action的get響應中的上一個先前的操作。 在該響應中,您可以過濾當前對象的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);
   }
});

它應顯示在其供稿中-您可以檢查用戶的供稿是否已為您提供了使用該應用的訪問令牌。 我做了一個帶有開放圖的測試來測試它,但是由於是我,所以我可以檢查自己的提要。 與另一個用戶一起,您必須在訪問令牌過期之前捕獲訪問令牌,然后將其填充到FB圖形資源管理器工具中。

我預期的問題的范圍已更改,因此此答案並非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/

暫無
暫無

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

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