我正在开发一个与twitter集成的Android应用程序。我想从推特上获取user_mention的推文。我在twitter dev http://docs.fabric.io/android/twitter/show-timelines.html上看到了这个文档。
这是代码的一部分:-
public class TimelineActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timeline);
TwitterAuthConfig authConfig = new TwitterAuthConfig("xxxxxxbbbbwdqddq", "eieuhquifhioqhfiohqoifhoi");
Fabric.with((this), new TwitterCore(authConfig), new TweetUi());
UserTimeline userTimeline = new UserTimeline.Builder().screenName("fabric").build();使用这种方法,我将根据screen name获得时间线。但我希望所有提到特定用户(前@user)的推文,而不是时间线。我已经在fabric上试过了,但是我也可以尝试twitter4j。因此,如果您知道如何做到这一点(无论是使用fabric还是twitter 4j),这将是有帮助的。提前谢谢。
发布于 2015-07-31 06:20:48
对于您的需求,Twitter是最好的解决方案。如果使用Twitter,您可以使用SearchService。您可以从Fabric的twitter客户端获得SearchService。如下所示:
Fabric.with(this, new Twitter(authConfig));
TwitterSession currentSession = Twitter.getSessionManager().getActiveSession();
TwitterApiClient twitterApiClient = new TwitterApiClient(currentSession);
SearchService searchService = twitterApiClient.getSearchService();
//Other services in Fabric Twitter
AccountService accountService =twitterApiClient.getAccountService();
StatusesService statusesService = twitterApiClient.getStatusesService();
FavoriteService favoriteService = twitterApiClient.getFavoriteService();以下是搜索服务的请求模板:
public interface SearchService {
@GET("/1.1/search/tweets.json")
void tweets(@Query("q") String var1, @EncodedQuery("geocode") Geocode var2, @Query("lang") String var3, @Query("locale") String var4, @Query("result_type") String var5, @Query("count") Integer var6, @Query("until") String var7, @Query("since_id") Long var8, @Query("max_id") Long var9, @Query("include_entities") Boolean var10, Callback<Search> var11);
}在这里,您必须输入您的查询而不是"q"。输入所需的查询,您将得到结果。您可以在Twitter的开发人员控制台Twitter开发人员控制台中尝试查询。
使用它的示例代码:
searchService.tweets("@ladygaga", null, null, null, SEARCH_RESULT_TYPE, SEARCH_COUNT, null, null,
maxId, true, new Callback<Search>() {
@Override
public void success(Result<Search> searchResult) {
final List<Tweet> tweets = searchResult.data.tweets;
// Use tweets as you like
}
@Override
public void failure(TwitterException error) {
}
});
例如,为了搜索所有提到、ladygaga、的tweet,您将查询为https://twitter.com/search?q=%40ladygaga&src=typd。这里Q是"%40ladygaga".你也可以用你的推特账号试试。检查地址栏中的网址。它给出了应该查询哪些内容的提示。
有关如何构建查询的更多信息,您可以查看如何构建Twitter搜索查询希望,这很有帮助。
发布于 2015-09-16 04:01:45
你可以试试!我的应用程序使用得很好!
public class...
UserTimeline userTimeline;
String username;
TwitterSession session;
TweetTimelineListAdapter adapter;
..... oncreate()....
TwitterAuthConfig authConfig = new TwitterAuthConfig("Xcp2iipj28BMVda6OSxVAwwLz", "grZ1IJYIHUPQsrf8F8fsbA06O55bfRGENW8mPbDTspoVKcV1xS");
Fabric.with(getActivity(), new TwitterCore(authConfig), new TweetUi());
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
session = Twitter.getSessionManager().getActiveSession();
username = session.getUserName();
userTimeline = new UserTimeline.Builder()
.screenName(username)
.build();
adapter = new TweetTimelineListAdapter.Builder(getActivity())
.setTimeline(userTimeline)
.build();
setListAdapter(adapter);https://stackoverflow.com/questions/31604903
复制相似问题