研究了一下应用如何接入github,特此记录一下探索过程
首先肯定是需要创建一个github账号,这部分就不多加描述了。下面进入流程:
1.进入创建应用页面步骤
创建一个OAuth App, 依次进入 Settings -> Developer settings ->OAuth apps, 选择右上角的创建应用按钮
2.创建OAuth应用
填写信息,需要注意的是回调地址,验证成功后github会调用该地址,且传递一个code,我们会根据这个code值调用获取token的接口,再根据token获取用户的信息
3.生成secret
创建出来的应用会提供一个Client ID ,然后Client secrets需要自己手动点击生成
4.获取token
1)在浏览器输入 github.com/login/oauth…, client_id 是上图中的应用提供,这个时候会要求登录授权
2)授权成功之后,github会回调之前创建应用的时候填入的回调接口,这个接口需要自己实现,并调用接口获取token
3)实现接口
public static final String GITHUB_TOKEN = "https://github.com/login/oauth/access_token";
@GetMapping("/github/auth")
public void getGithubAuth() throws Exception {
// code只生效十分钟
String code = ParameterUtils.getStringParameter(request, "code", true);
HashMap<String, String> param = new HashMap<>();
param.put("client_id", "应用提供的id");
param.put("client_secret", "应用提供的secret");
param.put("code", code);
String post = HTTPUtils.post(Constants.GITHUB_TOKEN, param);
log.info("token:{}", post);
}
// 调用的是post请求,参数是form-data格式,可以百度一下,我这个方法也是百度来的
4)请修改web所在的服务器的host文件,不然没办法访问https://github.com
vim /etc/hosts
140.82.113.3 github.com
185.199.108.154 github.githubassets.com
185.199.109.154 github.githubassets.com
185.199.110.154 github.githubassets.com
185.199.111.154 github.githubassets.com
185.199.108.154 github.githubassets.com
185.199.109.154 github.githubassets.com
185.199.110.154 github.githubassets.com
185.199.111.154 github.githubassets.com
199.232.68.133 camo.githubusercontent.com
199.232.68.133 camo.githubusercontent.com
199.232.68.133 github.map.fastly.net
199.232.68.133 github.map.fastly.net
199.232.69.194 github.global.ssl.fastly.net
199.232.69.194 github.global.ssl.fastly.net
140.82.113.5 api.github.com
140.82.113.5 api.github.com
199.232.68.133 raw.githubusercontent.com
199.232.68.133 raw.githubusercontent.com
199.232.68.133 user-images.githubusercontent.com
199.232.68.133 user-images.githubusercontent.com
199.232.68.133 favicons.githubusercontent.com
199.232.68.133 favicons.githubusercontent.com
5.总结
接入github其实到这一步就差不多了,剩下的就是根据token调用github提供的api接口了,实现对应的需求。
api文档链接在👉🏻docs.github.com/cn/rest/
搭建应用参考链接:docs.github.com/cn/develope…