前段时间做了一个“国外的公众号”,为什么说是国外的公众号呢,因为他和微信的公众号有很多共通之处。当然了也有很多不同的地方,第一个要说的就是,我在打印信息的时候,使用的alert()弹窗,但是后台才发现,LINE中的弹窗中的内容是不能用逗号分隔的。请看下面的代码:

 alert(1,2,3);

在LINE中就只能打印个1,然后后面的2,3是不能显示的,这个是最初做的时候很疑惑的东西。解决办法也是很简单,就是使用字符串拼接上就可以了。

  然后是LINE的登录,这个就是为什么我说是国外的公众号的原因了,因为他的登录基本上和微信的登录是一样的。具体过程就是前端需要率先访问一个LINE的网址,访问这个网址的时候,需要带上我们参数,其中会有一个参数是回调地址url,访问LINE的地址,会按照那个参数跳回来,然后在url后面添加上code参数。请看下面的代码:

         /**
* line网页版登录,通讯验证给予oauth2.0
* @param client_id line后台配置的id,请联系相关人员索要 就是line当中的Channel ID 1601124***
* @param gameUrl 游戏地址,登录后会跳转到此地址并携带可使用一次的code
* state 是咱们自定义的参数
*/
//client_id: string, gameUrl: string, state: string
function login(client_id,gameUrl,state) {
let url = encodeURIComponent(gameUrl);
//window.open('https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=' + client_id + '&redirect_uri=' + url + '&state=' + state + '&scope=openid%20profile&nonce=gzmjtw2019');
window.location.href = 'https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=' + client_id + '&redirect_uri=' + url + '&state=' + state + '&scope=openid%20profile&nonce=gzmjtw2019';
}

 11行就是那个LINE的网址,client_id是在创建这个应用的时候给的一个固定的id,然后gameurl就是跳回来的网址,需要说明的一点是,这个需要进行encodeURI。

  第二点需要注意的是,我们会需要一个uerid,我们是这样获取的。

  首先是引入line的sdk

 <script src="https://d.line-scdn.net/liff/1.0/sdk.js"></script>

  然后在js中需要一下的代码:

     function initApp(data){
line_userId = data.context.userId;//"U3164697f9daea7dcc5c69fde8bf4a***"; }
window.onload=function(){
liff.init(data=>{
initApp(data);
});
}

这样就能获取到这个用户在这个应用下的唯一ID了。

  然后有了上面的code和用户的唯一ID传给后台,后台就能获取到很多信息了。具体内容就需要根据业务需求来确定了,我们的业务是确定登录人在我们系统中的身份。然后继续进行下一步的操作,然后这个uerid我会保存到sessionStorage 中,以便以后确定操作人等。这里附上一个我自己做的流程图,方便以后查阅。

最新文章

  1. FactoryMethodPattern(工厂方法)
  2. 微信小程序开放公测了 晚上又可以通宵搞代码了
  3. jQuery MiniUI 开发指南+API组件参考手册
  4. UVa 11021 - Tribles
  5. VS2010打开项目时,出现“已经在解决方案中打开了具有该名称的项目”问题的解决方案
  6. java卡与native卡的区别
  7. 远程调用WMI安装软件
  8. 【2017-05-05】timer控件、三级联动、帐号激活权限设置
  9. Vue源码后记-更多options参数(1)
  10. Bootstrap 做一个简单的母版页
  11. Dynamics 365 Online-Security Updates On TLS 1.2
  12. 【洛谷P4180】严格次小生成树
  13. 区域生长算法 全局分类 C++ &amp; matlab
  14. Ubuntu中保存iptables防火墙规则
  15. pip安装python模块遇到一直出现retrying的问题
  16. Harbor 企业级镜像仓库搭建
  17. Regex.Split
  18. linux添加自启服务(程序)
  19. 【thrift】什么是rpc
  20. c# 之 new 关键字

热门文章

  1. Proxmox VE虚拟化管理平台-相关概念
  2. ARTS-S govendor
  3. 将object转换成dyamic类型 解决long输出到浏览器过长精度丢失问题
  4. 在5分钟内将Spring Boot作为Windows服务启动
  5. 【eclipse】Editor does not contain a main type
  6. JS内置对象-Array之forEach()、map()、every()、some()、filter()的用法
  7. salt
  8. NTFS在openwrt下的挂载问题
  9. static介绍、内部类、final、权限修饰符的作用范围
  10. 面试题:为什么客户端最后还要等待2MSL