2013-12-17 43 views
0

我試圖通過twitter4j庫獲得我的Twitter個人網絡的二級功能。當我指的是第二個層次的功能我的意思是我的追隨者的追隨者,我的追隨者等通過Twitter獲取社交網絡的第二級功能Api

我已經開始與我的追隨者首先使用下面的代碼的追隨者:

try{ 
    twitter = tf.getInstance(); 
    long cursor = -1; 
    IDs ids = twitter.getFriendsIDs(cursor); 

    long[] id = ids.getIDs(); 
    ResponseList<User> users = twitter.lookupUsers(id); 
} 
catch (Exception e) { 
    logger.warn("Error {}",e.getLocalizedMessage()); 
    e.printStackTrace(); 
} 

使用上面的我我正在得到我的朋友。但我正在努力得到朋友的朋友。 我讀過,給我的嘰嘰喳喳鍵我有權獲得二級功能,但沒有更進一步那。

任何幫助表示讚賞。

回答

0
Let me write a sample below: First block is for finding followers of a particular tweet user. 

    long lCursor = -1, nextCursor = -1; 
    IDs friendsIDs = null; 

    followerIDListOfOriginalTweeter = new ArrayList<>(); 

      do 
      { 
       lCursor = nextCursor; 
       try 
       { 
        friendsIDs = twitterObj.getFollowersIDs(originalTweetUserId, lCursor); 
       } 
       catch (Exception ex) 
       { 
        logWriter.Write(ex); 
       } 

       nextCursor = friendsIDs.getNextCursor(); 

      } while (nextCursor != 0); 


The second block is for finding followers of followers: 

    IDs friendsIDs = null; 
    long lCursor = -1, nextCursor = -1; 

    try 
     { 
      do 
       { 
        followers = new Followers(); 

        nextCursor = -1; 

        do 
        { 
         lCursor = nextCursor; 

         try 
         { 
       friendsIDs = twitterObj.getFollowersIDs(followers.currentUserId, lCursor); 
         } 
         catch (Exception ex) 
         { 
          logWriter.Write(ex); 

         } 

         for (long followerId : friendsIDs.getIDs()) 
         {        
          system.out.println(followerId); 
         } 

         nextCursor = friendsIDs.getNextCursor(); 

        } while (nextCursor != 0); 

      } while (rsForSelectNotCompletedRetweetsQuery.next()); 
+0

非常感謝您的回答。當然,我正在處理的一個巨大問題是,當我超過費率限制時,twitter會返回錯誤。你能告訴我,如果有任何可能的解決方案,我的情況? – user2008973

+0

我知道費率限制問題很重要,但有一個技巧可以使用。訣竅是您應該創建幾個Twitter帳戶並生成對應於這些新Twitter帳戶的令牌信息。您可以在try-catch塊中捕獲該速率限制錯誤,然後您可以使用更新的令牌更新Twitter類的Twitter對象。我所做的是將所有令牌信息存儲在數據庫表中,然後我正在讀取並將所有信息存儲在一個列表對象中。然後,對於每個速率限制錯誤,我正在更新令牌,然後我將能夠使用API​​函數而不存在任何速率限制問題。 – mgokhanbakal

+0

是的,這是一個非常好的方法,我認爲我已經在這裏再次閱讀它,但在我的情況下,我需要的是獲得剛剛登錄的特定用戶的追隨者的追隨者名單。所以,我猜我不能遵循這個解決方法,我可以嗎? – user2008973