首页 > 代码库 > 集成第三方开放平台
集成第三方开放平台
目前国内常见的第三方开放平台有:
- QQ开放平台
- 微信开放平台
- 新浪微博开放平台
我们可以通过集成这些第三方平台来实现:
- 第三方登录
- 内容分享到第三方平台
- 获取第三方平台用户资源
- ......
下面以新浪微博开放平台为例看下Java系统具体的集成步骤,QQ和微信类似,只需少许修改(具体请参考源码中示例)
一、注册平台账号,创建应用,填写认证回调地址(例如:http://127.0.0.1:8080/weibo/callback)
二、通过OAuth2认证
1.重定向请求,请求授权码code
/** * Step 1: 重定向到sina微博登录,请求授权码CODE * https://api.weibo.com/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=code * * @param resp * @throws Exception */ @RequestMapping("/weibo/login") public void weiboLogin(HttpServletResponse resp) throws Exception { String authorizeUrl = baseAuthorizeUrl + "?client_id=" + appKey + "&redirect_uri=" + redirectUri + "&response_type=code"; resp.sendRedirect(authorizeUrl); }
baseAuthorizeUrl为 https://api.weibo.com/oauth2/authorize
client_id为 平台应用对应的appKey
2.登录回调,获取授权码code
/** * Step 2: 登录回调,获取Code * * @param req * @throws Exception */ @RequestMapping("/weibo/callback") public String qqCallback(HttpServletRequest req) throws Exception { String code = req.getParameter("code"); //获取Access Token,并返回给页面 return getAccessToken(code); }
3.通过 授权code获取access_token
/** * Step 3: 通过code获取access_token * * @param resp * @param code 认证码 * @return * @throws Exception */ private String getAccessToken(String code) throws Exception { //拼接请求URL String tokenUrl = baseTokenUrl + "?client_id=" + appKey + "&client_secret=" + appSecret + "&grant_type=authorization_code&code=" + code + "&redirect_uri=" + redirectUri; //发送post请求,获取响应字符串 String resp = RestHttpClient.sendHttpPostRequest(tokenUrl); return resp; }
baseTokenUrl为 https://api.weibo.com/oauth2/access_token
4.通过token和uid调用微博api,例如查询微博用户信息
/** * Step 4: 根据Token和用户ID获取用户信息 * access_token:2.00AZrTrB5jlucE809b31fc07I9H_XC, uid:1706396054 * * @param access_token * @param uid * @return * @throws Exception */ @RequestMapping("/weibo/userInfo") public String getUserInfo(String access_token, String uid) throws Exception { //拼接请求URL String userInfoUrl = baseUserInfoUrl + "?access_token=" + access_token + "&uid=" + uid; System.out.println(userInfoUrl); //发送请求,获取响应字符串 String resp = RestHttpClient.sendHttpGetRequest(userInfoUrl); //返回响应字符串 return resp; }
baseUserInfoUrl为 https://api.weibo.com/2/users/show.json
源码地址:https://github.com/13babybear/bounter-openapi
集成第三方开放平台
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。