java - 新浪微博的authorize接口怎么获取返回的code值?
巴扎黑
巴扎黑 2017-04-18 10:23:22
[Java讨论组]
示例
//请求
https://api.weibo.com/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=code

//同意授权后会重定向
http://www.example.com/response&code=CODE

上段是新浪微博给的示例,浏览器打开示例中请求那样的地址,会打开输入新浪微博帐号密码的网页,输入帐号密码之后,网页就会跳转到示例中同意授权后会重定向那样的网址,网址中code=后边的值就是需要获取的

我尝试用okhttp来发送这个请求,但是返回的结果是授权页面,用浏览器打开,不知道怎么才能用JAVA获取到重定向的地址

巴扎黑
巴扎黑

全部回复(1)
大家讲道理
  • 第一个地址中的小写 code 就是 字符串 'code'

  • 第二个地址中的大写 CODE 代指 一长串随机code值

 //微博登陆按钮
$(document).on('click','._weiboLogin',function(){
    return window.open('{{ weiboCallBack }}', 'oauth2Login_weibo' ,'height=525,width=585, toolbar=no, menubar=no, scrollbars=no, status=no, location=yes, resizable=yes');
});

其中 {{weiboCallBack}} 就是第一个地址,然后这个授权成功后,会自动跳转到第二个地址

第二个地址是你自己当前网站的地址,需要自己开发写代码,如下:[注意看注释]

/**
     * 微博登陆
     */
    public function weibologincallbackAction()
    {
        $o = $this->weiboOauth;

        if (isset($_REQUEST['code'])) {
            $keys = array();
            //注意这里获取请求中的code
            $keys['code'] = $_REQUEST['code'];
            $keys['redirect_uri'] = $this->config->thirdpart['weibo']['WB_CALLBACK_URL'];
            try {
                $token = $o->getAccessToken('code', $keys);
            } catch (OAuthException $e) {
            }
        }

        if ($token) {
            //登陆
            $user = SessionController::registerUser($token['uid'],Users::USER_SOURCE_WEIBO);
            $this->_registerSession($user);
            $this->setSession('token',$token);
            $this->setSession('tokentype',Users::USER_SOURCE_WEIBO);
            setcookie('weibojs_' . $o->client_id, http_build_query($token));
        } else {
            //授权失败。
        }

    }

最好下载一个相应语言的SDK,链接:

http://open.weibo.com/wiki/SDK

其它相关阅读:
阮一峰 理解OAuth 2.0
OAuth 2.0官网

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号