QQ接口接入

编程入门 行业动态 更新时间:2024-10-25 16:18:46

首先在http://connect.qq/中注册,然后在管理中心创建应用,这里介绍的是网站应用。创建时最主要的两个选项是
网站地址以及回调地址,网站地址最好是你网站的页面,且该页面中必须包含
红线中的标签,才能验证成功。
回调地址:当你QQ成功授权后,会跳回你的网站,该地址就是你网站的域名,然而在我开发的时候发现该地址必须是具体的地址,官方api中写的是域名,然而开发是如果写域名,却一直出现回调地址错误的页面。
当应用申请成功之后就可以进行接口接入开发了。

博主使用的是java,所以就只能上java方面地代码了
授权登陆很简单

    // get the code
    private void AuthorizeURL(HttpServletRequest request,
            HttpServletResponse response) throws IOException {
        try {
            response.sendRedirect(new Oauth().getAuthorizeURL(request));// 接口接入
        } catch (QQConnectException e) {
            e.printStackTrace();
        }
    }

在Servlet中,该函数执行之后就会跳往QQ的授权登陆界面,登陆之后就会调回上一步填写的回调地址中的页面了(返回后会在地址栏获取到code和state参数,code参数很重要会用到)。这只是授权成功了,但是你还没有拿到用户的信息。要想拿到用户的信息,你需要accessToken,以及OpenId这两个数据。
获取accessToken

可以通过get请求在加上必须的参数获取accessToken
然而在SDK开发包中,Oauth 的 getAccessTokenByRequest(参数 HttpServletRequest) 方法可以直接获取到 AccessToken.

    // get the accessToken
    private void AccessToken(HttpServletRequest request,
            HttpServletResponse response) throws IOException {
        // get the return code
        String code = request.getParameter("code");
        String state = request.getParameter("state");
        AccessToken accessToken = null;
        try {
            accessToken = new Oauth().getAccessTokenByRequest(request);//获取accessToken
            // set the accessToken
            HttpSession session = request.getSession();
            session.setAttribute("accessToken", accessToken.getAccessToken());// 放到域对象session中

        } catch (QQConnectException e) {
            e.printStackTrace();
        }
    }

这样即可获得accessToken.
当然接下来就是OpenId了,OpenId也是QQ用户的唯一标识,在获取到accessToken后,即可获取OpenId,
当然官方有api

官方api,同样要求你使用get方式加上获取的accessToken来获取OpenId,openId的返回是通过json的方式,如图:

json中的openid就是你需要的了。当然这儿如何获取json呢,已通过URLConnection获取,即就是一个html信息;也还用其他的方式。
当然博主使用的是上代码

    // get the openId
    private void OpenId(HttpServletRequest request, HttpServletResponse response)
            throws IOException {
        String accessToken = (String) request.getSession().getAttribute(
                "accessToken");
        HttpSession session = request.getSession();     
        // define the openId
        OpenID openId = new OpenID(accessToken);//获取openid
        try {
            session.setAttribute("openId", openId.getUserOpenID());//   放入session域中     
        } catch (QQConnectException e) {
            e.printStackTrace();
        }       
    }

一句即可获取到openid.
博主还在申请发说说的权限,所以无法演示了。

更多推荐

QQ接口接入

本文发布于:2023-06-14 04:21:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1437381.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:接口   QQ

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!