网上资料太少了,只能啃官网文档
1. 前言
课程设计需要使用把项目部署到微信中使用。我实现的效果就是在企业微信里面可以直接点击应用然后使用(仅限于内部成员,外部成员无法访问)。
说明:,和
2. 注册账号
https://work.weixin.qq.com/ 并且登录
手机上最好也同时下载“企业微信”app
进入应用管理可以看见
3. 网页授权
配置好域名(没有就用内网穿透也行)
这里微信会请求你的http://abcdf.com/WW_verify_agFRemnEVeHcITzc.txt
你需要返回下载文件里的内容即可
后端代码
我直接写死了,反正不会变(每个人的校验码都不一样)
@Api(tags = "微信授权认证接口")
@Controller
public class OAuthController {
@ApiOperation("微信域名验证接口")
@ResponseBody
@GetMapping("/WW_verify_agFRemnEVeHcITzc.txt")
public String authentication() {
System.out.println("域名认证成功");
return "agFRemnEVeHcITzc";
}
}
4. 常规功能
发送消息,接受消息,自动回复这些和公众号是一样的
工作台主页,和自定义菜单里面就可以跳转到自己的web页面了,这样就成功把web应用嵌入到企业微信中了。
用户可以直接在企业微信中访问自己的web应用
5. 微信授权登录
https://work.weixin.qq.com/api/doc/90000/90135/91020 看文档吧
使用OAuth2实现扫码登录,就是有几个坑
java后端代码,用户访问我的localhost:8080/user,就会跳转到微信的扫码登录界面(这里的url需要根据官网文档拼接一下),当扫码登录完成后,会重定向到我们指定的地址REDIRECT_URI(注意需要encoder)。我这里就直接重定向到主页了,中间的service我就删去了。
@Api(tags = "微信授权认证接口")
@Controller
public class OAuthController {
@ApiOperation("微信域名验证接口")
@ResponseBody
@GetMapping("/WW_verify_agFRemnEVeHcITzc.txt")
public String authentication() {
System.out.println("域名认证成功");
return "agFRemnEVeHcITzc";
}
@ApiOperation("微信扫码登录接口")
@GetMapping("/user")
public void qr(HttpServletResponse response) throws IOException {
String REDIRECT_URI= URLEncoder.encode("http://egssen.natappfree.cc","UTF-8");
String url="https://open.work.weixin.qq.com/wwopen/sso/qrConnect?appid=wwc0cc67cb47bedf03&agentid=1000002&redirect_uri="+REDIRECT_URI;
response.sendRedirect(url);
}
@ApiOperation("重定向接口")
@GetMapping("/")
public String qq(@RequestParam("code") String code,@RequestParam("state") String state,@RequestParam("appid") String appid){
System.out.println("用户code="+code);
return "home";
}
}
6. 其他
如何获取用户信息,
术语介绍
corpid userid 部门id tagid agentid secret access_token 回调配置…
看官网文档,讲的很清楚