【发布时间】:2016-07-25 07:18:37
【问题描述】:
我很难获得 Twitter 用户的关注者数量。
我确实遵循了 twitter rest api 文档,但找不到我的问题的答案。我通过他们的 rest API 成功地进行了调用,并且我收到了“成功”的回调,但我不知道将我的响应解析为什么。他们的文档一直说“它返回一个”ID集合“。所以我假设我可以将响应解析为一个ID列表(List),但这会导致一个gson解析错误。我可以成功地将它解析为一个JSONOBject但最终是空的。
以下是相关代码:
package com.boomer.omer.kollabstr.backend.twitteroauth;
导入 com.twitter.sdk.android.core.models.User;
import org.json.JSONObject;
import java.util.List;
import retrofit.Callback;
import retrofit.http.GET;
import retrofit.http.Query;
public interface TwitterGetFollowerCountApiClient {
@GET("/1.1/followers/ids.json")
void getFollowerCount(@Query("user_id")Long id,
@Query("screen_name")String screenname,
@Query("cursor")Long cursor,
@Query("stringify_ids")Boolean sids,
@Query("count")Long count,
Callback<JSONObject> users);
}
然后我从以下位置发送/处理请求:
private void createSocialMediaObject(final TwitterSession twitterSession){
getKollabstrTwitterApiClient().getFollowerCountService().
getFollowerCount(twitterSession.getUserId(),
null,
null,
null,
null,
new Callback<JSONObject>() {
@Override
public void success(Result<JSONObject> result) {
SocialMedia twitter = new SocialMedia();
twitter.setUsername(twitterSession.getUserName());
twitter.setUserid(Long.toString(twitterSession.getUserId()));
twitter.setSocialMediaType(SocialMediaType.TWITTER);
//twitter.setImpact(result.data.size());
// Log.d(TAG,"FOLLOWERS:" + Integer.toString(result.data.size()));
Users user = SessionManager.getInstance().getCurrentUser();
user.getProfile().getSocialMediaAccounts().add(twitter);
SessionManager.getInstance().updateUser(user);
Log.d("FOLLOWER",Integer.toString(result.data.length()));
}
@Override
public void failure(TwitterException exception) {
Log.d(TAG,"FOLLOWER ERROR:" + exception.toString());
}
});
}
我在这里关注了他们的文档:https://dev.twitter.com/rest/reference/get/followers/ids
我想得到一个 id 列表,这样我就可以得到它的大小,这应该是根据他们的页面的关注者数量。但是即使我可以得到一个成功的回调(我假设这表明一个成功的查询正在完成)我无法弄清楚响应应该被解析成什么。
感谢任何帮助。请不要简单地将我介绍给其他图书馆来完成这项工作。
【问题讨论】:
-
不管您有什么问题,您都可以考虑切换到Retrofit 2,它是您正在使用的 Retrofit 版本的后续版本。
-
有一个名为 Twitter4J 的简单库,可以让您的生活变得如此轻松;
-
@Eenvincible 我特别说我不想使用其他库。
-
@PattaFeuFeu 这不是我的选择。 TwitterSdk 使用旧的改造。
标签: android rest twitter twitter-fabric