登录后我使用Fabric插件和Android工作室我得到了会话,用户名和用户ID。还有电子邮件地址。但无法找到任何获取用户个人资料照片的选项。
/
/inti twitter client
loginButton = (TwitterLoginButton) findViewById(R.id.twitter_login_button);
loginButton.setCallback(new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
// Do something with result, which provides a TwitterSession for making API calls
System.out.println("twitter success"+result.data.getUserId()+result.data.getUserName());
gettwitteremail();
}
@Override
public void failure(TwitterException exception) {
// Do something on failure
}
});
private void gettwitteremail(){
TwitterSession session =
Twitter.getSessionManager().getActiveSession();
TwitterAuthToken authToken = session.getAuthToken();
String token = authToken.token;
String secret = authToken.secret;
TwitterAuthClient authClient = new TwitterAuthClient();
authClient.requestEmail(session, new Callback() {
@Override
public void success(Result result) {
// Do something with the result, which provides
// the email address
System.out.println("twitter sucess"+result.data);
}
@Override
public void failure(TwitterException exception) {
// Do something on failure
System.out.println("twitter sucess"+exception.getMessage());
exception.printStackTrace();
}
});
使用以下代码修复
TwitterSession session =
Twitter.getSessionManager().getActiveSession();
TwitterAuthToken authToken = session.getAuthToken();
String token = authToken.token;
String secret = authToken.secret;
TwitterApiClient twitterApiClient = Twitter.getApiClient();
StatusesService twapiclient = twitterApiClient.getStatusesService();
twapiclient.userTimeline(twitteruserid,null,null,null,null,null,null,null,null,new Callback<List<Tweet>>() {
@Override
public void success(Result<List<Tweet>> listResult) {
System.out.println("listResult"+listResult.data.size());
System.out.println("listResult"+listResult.data.get(0).user);
System.out.println("listResult"+listResult.data.get(0).user.profileImageUrl);
userInfo.imageurl = listResult.data.get(0).user.profileImageUrl;
}
@Override
public void failure(TwitterException e) {
}
});
答案 0 :(得分:3)
尝试使用此代码获取用户个人资料照片。
public void getTwitterData(final TwitterSession session) {
MyTwitterApiClient tapiclient = new MyTwitterApiClient(session);
tapiclient.getCustomService().show(session.getUserId(),
new Callback<User>() {
@Override
public void success(Result<User> result) {
TwitterAuthToken authToken = session.getAuthToken();
String token = authToken.token;
String secret = authToken.secret;
name.setText(result.data.name);
location.setText(result.data.location);
new ImageDownloader(profileImageView)
.execute(result.data.profileImageUrl);
Log.d("Name", name);
Log.d("city", location);
}
public void failure(TwitterException exception) {
// Do something on failure
exception.printStackTrace();
}
});
****************
class MyTwitterApiClient extends TwitterApiClient {
public MyTwitterApiClient(TwitterSession session) {
super(session);
}
public CustomService getCustomService() {
return getService(CustomService.class);
}
}
interface CustomService {
@GET("/1.1/users/show.json")
void show(@Query("user_id") long id, Callback<User> cb);
}
************
class ImageDownloader extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public ImageDownloader(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String url = urls[0];
Bitmap mIcon = null;
try {
InputStream in = new java.net.URL(url).openStream();
mIcon = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
}
return mIcon;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}