2

ツイートで場所を検索するたびにnullが返されます。ここに私のコード、アイデアはありますか?

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が返されます。

どんな助けもいただければ幸いです!乾杯

4

1 に答える 1

4

@JohnSmith、動作しました。

ユーザーがボタンをクリックしてツイートに場所を追加すると、Status.getLocation()(またはTweet.getLocation())が機能することがわかります。これを行わないことを選択した場合、現在地は投稿されず、nullが返されます。

テスト用のTwitterアカウントを使用してこれをテストしました。@Saviour_Self 最新の投稿で場所を指定しました。アプリケーションを実行すると、場所が返されました。アカウントからすべてのステータス更新を取得するためにループを実行しましたが、そのうちの1つだけが場所を返しました。

for (Status s : tweets) {
    System.out.println(s.getLocation()); //Returned the location of the tweet.
    System.out.println(s.getUser().getLocation());  /* Returned the 
                                              User Profile  Location (always constant)*/
}

これを行うためにTwitter4jではなくJTwitterを使用したことを覚えておいてください。ただし、結果は同じであるはずです。先に進んで、私のアカウントでプログラムをテストしてください。最新の投稿のみがnull以外の場所を返します。

于 2012-11-19T14:37:10.177 に答える