如何使用java调用易班登录API获取个人账号信息(一)
关于这篇文章:
笔者近期和小伙伴接了校方的一个小小小项目,要求使用易班APP的账号,这意味着需要调用易班官方的登录API。下面介绍使用java语言作为后端,在自己的网站如何接入易班的登录API(轻应用、移动应用的操作大同小异)。(关于改造成前后端分离式开发,详见后续文章)
文章目录
- 关于这篇文章:
- 申请成为开发者账号
- 创建应用接入
- 下载易班JAVA的SDK示例及介绍
- 创建Web项目
- 启动自己的web项目
- 授权测试
- 关于JCE报错:
申请成为开发者账号
第一步:登录易班开放平台网站:https://o.yiban.cn/
第二步:进入个人中心:
第三步:按照标题填写好个人信息进去就好。
然后就坐等两三天左右的消息回馈就好啦!
创建应用接入
为了演示方便,我们这次创建网站接入。
第一步:进入管理中心,点击绿色按钮“创建网站接入”。
第二步:填写基本信息,这一步按照标题提示填写就好啦;
第三步:填写开发信息。
主要是这三个信息:网站地址、维护地址和授权回调地址。以下是我自己的设置,大家可根据自己的需要自行调整:
网站地址就是:写你本机的地址和运行这个网站的端口号。
维护地址可不填
授权回调地址就是:你调用易班登录API进入易班的官方登录页面成功后浏览器跳回哪个页面(你自己的页面)
创建应用成功后,就会生成两个重要的信息:AppID和AppSecret,分别对应易班官方给你这个应用唯一的应用ID和应用秘钥。
到这一步,你已经拥有自己的测试权限了。
下载易班JAVA的SDK示例及介绍
第一步:进入易班开放平台的文档中心:易班开放平台wiki文档
第二步:下载我们需要的SDK(这次介绍java的那就下载JAVA对应的SDK),解压它(里面的文档大家有兴趣就自行查看哈,这里就不作重复介绍了)。
创建Web项目
(我这里不小心点到了maven项目,但是不影响,我依然会以官方文档的介绍方式给大家做示例)
第一步:配置tomcat,和你刚才填写的开发信息要一致(配置tomcat的具体步骤我就跳过了哈):
第二步:导入易班官方给的依赖包(这个在SDK包里的两个lib文件夹里),全部导入到项目中(后续文章再介绍用maven管理的方式导入)
第三步:导入官方示例页面及配套代码(这个页面做测试的时候用,后面再换成自己的页面就好了),用这三个即可,
特殊说明:这里我为了方便把官方的代码移动到根目录的src文件夹了,这个大家怎么舒服怎么来就好。
第四步:搭建跳转易班官方登录页面的jsp。
这个请求方式官方没有直接给.jsp我们,但是把代码放在了
YBApi_sdk_java\YBApi_sdk_java_20150820\doc这个文档里的“易班开放平台接入新手教程(Java版).docx”文档。
文档对应的部分如下:
我们创建一个authorize.jsp文件(为了方便我直接放在根目录了),然后把示例代码给复制进来,那三个参数就是刚才生成的应用官方给你的ID和秘钥。
第五步:修改Authorization.java文件,把授权成功后跳回的页面路径是不是官方给我们的index.html页面。
还有这里:
授权失败的跳转那里全部都要记得加上return;不然会报多次跳转的异常,授权失败的地址修改成开头的请求官方登录页面的那个authorize.jsp。
第六步:配置web.xml
这个xml文件就在官方文档的WEB-INF文件夹里,刚才已经复制进来了。如果你像我一样换了官方的servlet和util的位置,你就改一下划红线的类位置就行。
设置初始启动的页面:
还记得刚才我们创建的authorize.jsp文件吗?那里用到了response.sendRedirect();,说明这个文件的作用就是将我们的ID和秘钥以及回调地址发给易班官方,如果匹配就返回官方登录的页面给我们,我们用自己的易班登录页面登录后就浏览器跳转回我们的回调地址。为了方便我们只需要在web.xml设置一下服务器启动就打开authorize.jsp,在web.xml文件里加入这句话即可:
启动自己的web项目
一打开,就发现自动跳转到官方登录界面了!这说明,我们的authorize.jsp里的代码工作正常,那个返回的url地址对应的就是官方登录页面的地址以及其他参数。
我们登录一下,然后就跳转到刚才自己设置的回调地址了。
授权测试
这个时候我们发现下面的按钮还是白色,这时候就要初始化一下我们本地的服务器(因为后续的一切调用API都是用我们的服务器后端去请求官方的API,而不是从前端请求)。
将刚才的ID和秘钥填进去,点“设定”。
当第一个按钮变成绿色,说明本地服务器关于本应用参数已初始化成功!
然后,我们进行调用一下我们刚才servlet里的Authorization进行授权。还记得怎么调用Authorization吗?不记得就看一眼web.xml文件:
噢,请求名就是auth,用get方法。那我们就可以直接将刚才登陆成功后生成的code拼到地址里,进行请求:
当授权成功,自动跳回刚才官方给我们的测试页面,此时页面已经变成了这样:
这些接口都变成了绿色,说明我们的这些接口都可以用了。为了看调用接口后易班官方给我们返回来的信息,我们直接在后端进行输出吧(在Execution里修改就行):
看一眼后端输出(我点了授权查询、基本信息和好友列表),后端输出这三行信息:
至于其中每个字段对应的具体含义,去易班api那里查就好啦。
介绍完毕!敬请匹配指正!接下来我会另写一篇博客介绍如何在springboot框架下进行前后端分离开发式的调用易班官方登录功能。
关于JCE报错:
如果程序运行的时候后端报错:Could not initialize class javax.crypto.JceSecurity ,可以这么解决:
下载新的local_policy.jar和US_export_policy.jar,
替换本地的%JAVA_HOME% /jre/lib/sercurity/ 中的 local_policy.jar 和 US_export_policy.jar这两个依赖包(刚才下载的SDK里也有,但是易班文档给的那两个我用不了,换成新的我就能用了)。
如果你们的JDK版本是7,来这个地址下载:https://www.oracle.com/java/technologies/javase-jce7-downloads.html
如果你们的JDK版本是8,来这里下载:
https://www.oracle.com/java/technologies/javase-jce8-downloads.html
如何使用java调用易班登录API获取个人账号信息(一)相关推荐
- Java调用有道翻译API包括APPID/密钥地址注册
Java调用有道翻译API 因为上次发的资源用的我的APPID 导致我的服务已经停用了-- 现在把地址也一并奉上 希望都可以自己注册. APPID/密钥 注册地址:http://ai.youdao.c ...
- html调用腾讯地图定位当前位置,vue web项目中调用腾讯地图API获取当前位置的经纬度...
vue web项目中调用腾讯地图API获取当前位置的经纬度 vue web项目中调用腾讯地图API获取当前位置的经纬度 在main.js 中添加一下代码 import axios from 'axio ...
- 小程序笔记(9)调用腾讯api获取周边饮食店信息
调用腾讯api获取周边饮食店信息 实现功能 实现流程 基本逻辑实现 开始注册key 开始代码 先配置app.json中的权限获取 index.wxml index.wxss index.jssssss ...
- 百度地图利用位置提供服务器,利用百度地图API获取当前位置信息的实例
利用百度地图API可以做很多事情,个人感觉最核心也是最基础的就是定位功能了.这里分享一个制作的JS可以实现登录网页后定位: var map; var gpsPoint; var baiduPoint; ...
- (详解)钉钉接口,PC端微应用,免登录及获取当前用户信息
1.用了两天的时间,一直在研究微应用的,免登录及获取用户信息这一块. 但是钉钉官网写的太繁杂了,看了一天,硬是没看明白,最后,硬着头皮,一点点查资料,借鉴别人的代码,终于 研究 出来了,为了防止 年轻 ...
- Python 使用 twitter API 获取twitter用户信息
Python 使用 twitter API 获取twitter用户信息 1. 概述 twitter作为国外极其大众化的社交平台,具有大量的海外用户,平台流动数据量极大,是国外人群生活数据的重要来源之一 ...
- Python3 | 通过百度地图API获取商家详细信息(包括店名,地址,经纬度,电话)
一.打开百度地图开放平台,选择Web服务API . 官方文档对API接口的调用描述的比较详细,在调用之前先要申请百度地图的账号,然后申请密钥,获取密钥的步骤官方也有说明. 二.通过百度地图 ...
- android 从新浪微博获取用户信息,Android授权登录新浪微博获取用户个人信息
Android授权登录新浪微博获取用户个人信息 Android授权登录新浪微博获取用户个 人信息 一.准备工作 我们都知道,无论是分享到新浪微博,还是获取新浪微博的用户信息,都离不开一样东西,那就是新 ...
- php实现易班登录,简单的易班申请授权以及使用方式
//以下三个变量内容需换成本应用的$APPID = ""; //在open.yiban.cn管理中心的AppID$APPSECRET = ""; //在open ...
最新文章
- 【重磅干货】Python、机器学习、深度学习算法实战和应用必备书籍
- win10 远程问题汇总
- vs当前文件的函数索引_VM实战(六) - 通过案例深入学习class文件结构原理
- python自学课堂_python怎么自学要那本书
- Web页面执行shell命令
- python高斯核函数_python 实现高斯核与卷积过程
- Vue3.0 所采用的 Composition Api 与 Vue2.x 使用的 Options Api 有什么不同?
- 2022-2028年中国罐头行业市场专项调研及发展策略分析报告
- 学英语查单词:快乐英语,简单生活,why not Bing EngKoo!?
- PMI-PBA 商业分析师 认证简介
- 软件实施人员具备的技能和素养
- 误发邮件怎么办?发错邮件如何撤回?/
- 蚂蚁java一二三面面经
- 如何在autocad中制作幻灯片文件(.sld)
- pip 常用命令及控制台怎么查看python 及pip 和已安装包版本号
- APM32 ST-LINK不能刷入
- DASCTF Oct X 吉林工师-欢迎来到魔法世界-misc-魔法少女的迷音(复现)
- Python获取手机4K壁纸,一个入门练手的案例
- Away3D 基础5 - 3D基本元素(3)
- Gamma分布,Beta分布,多项式分布,Dirichlet狄利克雷分布
热门文章
- Python源码加密与Pytorch模型加密
- 数字IC/FPGA设计第一大群(超1600+),群主电子科大06级师兄
- C++函数返回右值引用
- WebDAV之葫芦儿·派盘 + Enpass
- 数智运营 创见未来| 2023永洪科技城市峰会·北京站成功举办
- Zabbix和agent端部署、图示Zabbix Web端搭建以及添加设备的4种方法、Zabbix API
- 如何在Android 10中从后台启动活动
- C++-Windows消息循环GetMessage/TranslateMessage/DispatchMessage
- 挂载mount: 文件系统类型错误、选项错误 有坏超级块
- 高校 招生迎新大数据分析系统解决方案(ppt)