最通俗简单的新浪微博OAuth认证实现

System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
         System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
         
            Weibo weibo = new Weibo();
            // set callback url, desktop app please set to null
            // http://callback_url?oauth_token=xxx&oauth_verifier=xxx
            //1。根据app key第三方应用向新浪获取requestToken
            RequestToken requestToken = weibo.getOAuthRequestToken();
           
            System.out.println("1.......Got request token成功");
            System.out.println("Request token: "+ requestToken.getToken());
            System.out.println("Request token secret: "+ requestToken.getTokenSecret());
            AccessToken accessToken = null;
           //2。用户从新浪获取verifier_code 如果是Android或Iphone应用可以callback =json&userId=xxs&password=XXX
            System.out.println("Open the following URL and grant access to your account:");
            System.out.println(requestToken.getAuthorizationURL());
            BareBonesBrowserLaunch.openURL(requestToken.getAuthorizationURL());
           //3。用户输入验证码授权信任第三方应用
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            while (null == accessToken) {
                System.out.print("Hit enter when it's done.[Enter]:");
                String pin = br.readLine();
                System.out.println("pin: " + br.toString());
                try{
                 //4。通过传递requestToken和用户验证码获取AccessToken
                    accessToken = requestToken.getAccessToken(pin);
                } catch (WeiboException te) {
                    if(401 == te.getStatusCode()){
                        System.out.println("Unable to get the access token.");
                    }else{
                        te.printStackTrace();
                    }
                }
            }
           
            System.out.println("Got access token.");
            System.out.println("Access token: "+ accessToken.getToken());
            System.out.println("Access token secret: "+ accessToken.getTokenSecret());
           //使用AccessToken来操作用户的所有接口
           /* Weibo weibo=new Weibo();

            以后就可以用下面accessToken访问用户的资料了
            * weibo.setToken(accessToken.getToken(), accessToken.getTokenSecret());
            //发布微博
   Status status = weibo.updateStatus("test message6 ");
   System.out.println("Successfully updated the status to ["
     + status.getText() + "].");
           
            try {
    Thread.sleep(3000);
   } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }*/
            System.exit(0);
        } catch (WeiboException te) {
            System.out.println("Failed to get timeline: " + te.getMessage());
            System.exit( -1);
        } catch (IOException ioe) {
            System.out.println("Failed to read the system input.");
            System.exit( -1);
        }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值