2012-11-18 86 views
2

每次我搜索tweet位置時它都返回null,這裏是我的代碼,有什麼想法?getLocation()總是返回null,搜索Twitter

ConfigurationBuilder cb = new ConfigurationBuilder(); 
cb.setOAuthConsumerKey("8888888888888888888"); 
cb.setOAuthConsumerSecret("8888888888888888888888888"); 
cb.setOAuthAccessToken("8888888888888888888888"); 
cb.setOAuthAccessTokenSecret("8888888888888888888888888888"); 

Twitter twitter = new TwitterFactory(cb.build()).getInstance(); 
Query query = new Query("London"); 
query.setRpp(1000000); 


QueryResult result = twitter.search(query); 

ArrayList tweets = (ArrayList) result.getTweets(); 


for (int i = 0; i < tweets.size(); i++) { 
    Tweet t = (Tweet) tweets.get(i); 
    String user = t.getFromUser(); 
    GeoLocation l = t.getGeoLocation(); 
    String locNam = t.getLocation(); 
    String msg = t.getText(); 
    Date d = t.getCreatedAt(); 
    println(locNam + ""); 

我能得到getGeoLocation()做工精細,他們是寥寥可數,但我得到了一些然而,隨着getLocation每個搜索返回null。

任何幫助將不勝感激!歡呼聲

+2

您應該更改您的OAuth密鑰。 – SLaks

+0

狗屎......謝謝你 –

+0

有趣的問題。讓我試試我的Twitter應用程序,我會盡快回復你。 –

回答

4

@JohnSmith,我得到它的工作。

原來Status.getLocation()(或Tweet.getLocation())工作,如果用戶點擊該按鈕來添加位置,他們的鳴叫。如果您選擇不這樣做,那麼您的位置將不會被髮布,並且會返回null。

我測試了這個使用我的測試Twitter帳戶:@Saviour_Self在我最近的帖子中,我給了一個位置,當我運行我的應用程序時,它返回了位置。我運行了一個循環來獲取我的帳戶的所有狀態更新,其中只有一個返回了一個位置。請注意,我使用JTwitter來做到這一點,而不是Twitter4j,但結果應該是一樣的。繼續並在我的帳戶上測試您的程序。只有最近的帖子纔會返回非空位置。

+0

有很大的幫助,謝謝,但我仍然有問題。 主要是爲了找到twitter4j替代'getUser',我嘗試了't.getUser()。getLocation()'但它不承認'getUser()'函數,不過謝謝你的幫助,而且試圖深入一點我怎樣才能訪問這:) –