在我的应用程序中我通过Twitter登录它给了我会话并通过使用此会话我可以在Twitter上发布图像, 但问题是重启后我已经通过Twitter登录我的应用程序,但会话无法使用。我必须再次登录才能获得会话。 原生Twitter应用程序安装在我的设备上我只是通过Twitter获得已经登录到Twitter应用程序和我的应用程序的用户的会话。有没有办法得到这个。
我正在使用此代码在Twitter上分享位图图像
public void shareOnTwitter(Bitmap bitmap){
final TwitterSession session = TwitterCore.getInstance().getSessionManager()
.getActiveSession();
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
byte[] byteArray = bytes.toByteArray();
Twitter.getInstance().getTwitterAuthConfig();
if(session != null) {
TwitterApiClient twitterApiClient = new TwitterApiClient(session);
MediaType mediaType = MediaType.parse("image/*");
RequestBody body = RequestBody.create(mediaType, byteArray);
Call<Media> mediaCall = twitterApiClient.getMediaService().upload(body, null, null);
mediaCall.enqueue(new Callback<Media>() {
@Override
public void success(Result<Media> result) {
String mediaIdString = result.data.mediaIdString;
}
@Override
public void failure(TwitterException exception) {
AppUtil.log("Twitter", "Twitter media failed");
}
});
}
}
注意:我不想通过意图分享图像作为链接
答案 0 :(得分:0)
您还需要从success方法中调用以下方法:
void uploadTweetWithMedia(TwitterApiClient客户端,TwitterSession会话,字符串文本,字符串mediaId){ client.getStatusesService()。update(text,null,null,null,null,null,null,true,mediaId) .enqueue( new Callback(){ @覆盖 public void success(结果){ Log.v(“update”,“success”+ result.data.idStr); }
@Override
public void failure(TwitterException exception) {
Log.v("update", "failure " + exception.getMessage());
}
});
}