2011-09-04 35 views
0

我有一個應用程序在網頁上運行,它有一個facebook id列表並通過它們運行,檢查登錄的用戶是否與列表中的id有任何共同的朋友;爲了進行驗證,我使用了Rest.API和friends.getMutualFriends metond,我使用這種方法,因爲這樣我就可以獲得共同的朋友而不需要兩個用戶都進行身份驗證,我只需要對原始用戶標識進行身份驗證,在使用FQL或使用Graph API的情況下,兩個用戶都應該連接起來,這樣我就可以獲得共同的朋友,這就是爲什麼getMutualFriends方法在這種情況下非常有用。說我遇到的問題是,當我嘗試拉共同的朋友,有很多的朋友,然後我得到這個錯誤Facebook GetMutualFriends方法失敗,沒有明確的理由

「ERROR_CODE」用戶:18, 「ERROR_MSG」:「這API調用無法完成,由於資源限制」,

,如果我嘗試這樣做,與具有較少frineds的將工作的用戶,我知道,說少還是不少是novet非常準確,所以,讓我們來看看這個例子,如果我嘗試與擁有300個朋友的用戶執行此調用,則該調用將工作,但如果我嘗試與擁有700個朋友的用戶完全相同的事情,它將返回與上面提到的錯誤,所以我認爲這可能是每秒調用的數量,所以我限制了它,但它沒有奏效,我嘗試重置應用程序鍵,我嘗試了幾個不同的用戶,我試圖用一個新的應用程序來做到這一點,即使我只是想打一個電話,比較2級的用戶,如果用戶有一個大的大寫金額的朋友,它會失敗,我使用這個代碼

function getMutualFriends($facebook, $uid1, $uid2) 
{ 
    try 
    { 
     $param = array(
      'method' => 'friends.getMutualFriends', 
      'source_uid' => $uid1, 
      'target_uid' => $uid2, 
      'callback'=> '' 
      ); 
     $mutualFriends = $facebook->api($param); 
     return $mutualFriends; 

    } 

    catch(Exception $o) 
    { 
       return serialize($o); 
    } 

    return null; 
} 

function getMutualFriendInfo($facebook, $uid1, $uid2) 
{ 

    $mutualfriends=getMutualFriends($facebook, $uid1, $uid2); 
    if (is_array($mutualfriends))//!='')) 
    { 
     $friend_uids = implode(",",$mutualfriends); 
     try 
     { 
      $param = array(
       'method' => 'users.getInfo', 
       'uids' => $friend_uids, 
       'fields' => 'name,pic_square,pic_big', 
       'callback' => '' 
       ); 
      $friend_info = $facebook->api($param); 
      return $friend_info; 
     } 
     catch (Exception $o) 
     { 
      return serialize($o); 
     } 
    } 
    return serialize($mutualfriends); 
} 

所以我的問題是,被有什麼我在這個角色上做錯了,所以它失敗了?除了friends.GetMutualFriends方法之外,還有其他方法可以做到這一點嗎?我已經嘗試過這個SELECT uid1 FROM friend WHERE uid2=[targetID] AND uid1 IN (SELECT uid2 FROM friend WHERE uid1=[sourceID]),但它沒有奏效。這個錯誤有沒有具體的起源?

我很困惑,因爲它適用於某些用戶,它不適用於其他人,我搜索是否有任何API限制,但我沒有找到任何東西,API儀表板上沒有錯誤,此代碼似乎工作之前,如果我在Facebook上的測試控制檯上執行調用,我會得到相同的錯誤,

感謝您的幫助,任何想法將不勝感激。

回答

0

首先,您應該從舊的休息api遷移到新圖api ....因爲facebook很快就會過時舊的休息api。 其次嘗試此查詢

SELECT uid1 FROM friend WHERE uid2='your user id' 

我希望它會成功

+0

謝謝。我一直在試圖找到一種方法來處理圖api,但似乎沒有一種方法可以讓兩個用戶之間獲得共同的朋友,唯一的方法就是在朋友之間建立一個交集user1和user2,但要做到這一點,你需要兩個用戶成爲朋友,或者讓應用獲得user2的許可。我們只有user1的許可。在我的情況下,我試圖找到兩個不是朋友的人之間的相互聯繫。我想知道的是,如果user1與我在數據庫中擁有的任何id有任何共同的朋友。 – DonChejo

相關問題