Android实现Twitter登录分享

Twitter 

一、注册获取参数

1、进入Twitter开发者网站注册账号https://developer.twitter.com/

2、新建一个项目,就按照提示填写就行(提示:尽量填的“委婉”点,不然可能审核过不了);

3、创建应用 括号代表必填

 tips:不勾选Enable Sign in with Twitter这个选项就不用填下面的Callback URLs,拉起Twitter进行授权登录;选中这个选项就要填Callback URLs(这个回调地址不知道怎么处理的),没安装Twitter调出web登录界面进行登录。

4、获取到TWITTER_KEY和TWITTER_SECRET

5、引入Twitter库

compile 'com.twitter.sdk.android:twitter:3.1.1'

二、登录实现

1.初始化

TwitterConfig config=new TwitterConfig.Builder(activity)
                    .logger(new DefaultLogger(Log.DEBUG))
                    .twitterAuthConfig(new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET))
                    .debug(true)
                    .build();

            Twitter.initialize(config);

2.调用登录

TwitterAuthClient mTwitterAuthClient=null;

mTwitterAuthClient=new TwitterAuthClient();

            mTwitterAuthClient.authorize(activity, new Callback<TwitterSession>() {
                @Override
                public void success(Result<TwitterSession> result) {
                    Log.d(tag,"login success");
                    //获取以下登录成功返回信息进行登录验证
                    final String user_id=result.data.getUserId()+"";
                    String user_name=result.data.getUserName();
                    TwitterAuthToken authToken=result.data.getAuthToken();
                    String access_token=authToken.token;
                    String tokenSecret=authToken.secret;

                    //获取登录用户信息
                    final TwitterSession activeSession=TwitterCore.getInstance().getSessionManager().getActiveSession();
                    TwitterApiClient client=new TwitterApiClient(activeSession);
                    AccountService accountService=client.getAccountService();
                    Call<User> show=accountService.verifyCredentials(false,false,false);
                    show.enqueue(new Callback<User>() {
                        @Override
                        public void success(Result<User> result) {
                            User user_data=result.data;
                            String email=user_data.email;
                        }

                        @Override
                        public void failure(TwitterException e) {

                        }
                    });
                }
                @Override
                public void failure(TwitterException e) {
                    Log.e(tag,"login failure:"+e.getMessage());
                    mTwitterAuthClient=null;
                }
            });

三、分享实现:

 public void shareTweet(Activity activity, String text, String url, String uri){
        Log.d(tag,"share to twitter");
        try{
            String uri1="android.resource://"+activity.getPackageName()+uri;
            TweetComposer.Builder builder=new TweetComposer.Builder(activity);
            builder.text(text)
                    .url(new URL(url))
                    .image(Uri.parse(uri1))
                    .show();
            //Log.d(tag,"");
        }catch (Exception e){
            e.printStackTrace();
        }
    }
shareTweet(this,"This is a Twitter share test","https://www.quicksdk.com/","/raw/twitter_share");

猜你喜欢

转载自blog.csdn.net/Gufra_Yin/article/details/85336292