阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 1155|回复: 0

[转帖] 最通俗简单的新浪微博OAuth认证实现

[复制链接]
  • TA的每日心情
    开心
    2012-3-7 10:15
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2012-1-4 11:42:40 | 显示全部楼层 |阅读模式
    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);
    }
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表