我在登录后使用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,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) {
- }
- });
解决方法
尝试使用此代码获取用户个人资料照片.
- 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);
- }
- }