前段时间做了一个“国外的公众号”,为什么说是国外的公众号呢,因为他和微信的公众号有很多共通之处。当然了也有很多不同的地方,第一个要说的就是,我在打印信息的时候,使用的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 中,以便以后确定操作人等。这里附上一个我自己做的流程图,方便以后查阅。

LINE 项目总结的更多相关文章

  1. 第2章 Java基本语法(下): 流程控制--项目(记账本)

    2-5 程序流程控制 2-5-1 顺序结构 2-5-2 分支语句1:if-else结构 案例 class IfTest1{ public static void main(String[] args) ...

  2. eclipes常见操作总结及项目2和3经验总结

    eclipes常见操作总结及项目2经验总结 eclipes提示: 打开eclipes 选择window->perference->java->editor->content a ...

  3. 打造强大的BaseModel(1):让Model自我描述

    前言 从事iOS开发已经两年了,从一无所知到现在能独立带领团队完成一系列APP的开发,网络上的大神给了我太多的帮助.他们无私地贡献自己的心得和经验,写出了一篇篇精美的文章.现在我也开始为大家贡献自己的 ...

  4. Swift语言 简明基础 代码演示样例

    开发环境: Mac.Xcode6.0 下面内容均可创建ios common line项目来測试 1.Hello World演示样例 使用xcode创建新的common line项目,查看主文件main ...

  5. ALV TREE 实例

    ALV TREE 实例 REPORT ZRPT_PS_PS021TREE . TABLES: PROJ, "项目定义数据 PRPS, "WBS元素数据 ZCJ30, "A ...

  6. Android项目部署时,发生AndroidRuntime:android.view.InflateException: Binary XML file line #168: Error inflating class错误

    这个错误也是让我纠结了一天,当时写的项目在安卓虚拟机上运行都很正常,于是当我部署到安卓手机上时,点击登陆按钮跳转到用户主界面的时候直接结束运行返回登陆界面.    当时,我仔细检查了一下自己的代码,并 ...

  7. 【spring cloud】spring cloud打包最外层项目报错:'packaging' with value 'jar' is invalid. Aggregator projects require 'pom' as packaging. @ line 9, column 13

    OK,spring cloud项目,最外层的父级项目在打包的时候,报错如下: "C:\Program Files\Java\jdk1.8.0_131\bin\java" -Dmav ...

  8. 项目错误提示Multiple markers at this line

    新安装个Myeclipse,导入以前做的程序后程序里好多错,第一行提示: Multiple markers at this line         - The type java.lang.Obje ...

  9. IntelliJ IDEA 运行项目的时候提示 Command line is too long 错误

    在 IntelliJ IDEA 项目运行的时候收到了下面的错误提示: Error running 'Application': Command line is too long. Shorten co ...

随机推荐

  1. Link Binary With Libraries中添加的时候 也找不到libz.dylib 库

    接到一个项目4个静态库找不到 在 Link Binary With Libraries中添加的时候 也找不到libz.dylib  郁闷了 原来是ios9后 原来的dylib后缀名的库全部修改tbd ...

  2. 数据库Oracle多表链接

    多表查询: 当查询的数据并不是来源一个表时,需要使用多表链接操作完成查询.根据不同表中的数据之间的关系查询相关联的数据. 多表链接方式: 内连接:(等值连接,非等值连接,自连接,SQL99有交叉连接( ...

  3. java笔记 -- 乐观锁与悲观锁

    何谓乐观锁和悲观锁 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展.这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人. 悲观锁 - ...

  4. Python3 并发编程2

    目录 进程互斥锁 基本概念 互斥锁的使用 IPC 基本概念 队列 生产者消费者模型 基本概念 代码实现 线程 基本概念 创建线程 线程互斥锁 进程互斥锁 基本概念 临界资源: 一次仅允许一个进程使用的 ...

  5. 每周一练 之 数据结构与算法(Stack)

    最近公司内部在开始做前端技术的技术分享,每周一个主题的 每周一练,以基础知识为主,感觉挺棒的,跟着团队的大佬们学习和复习一些知识,新人也可以多学习一些知识,也把团队内部学习氛围营造起来. 我接下来会开 ...

  6. JavaScript数组去重(12种方法,史上最全)

    参考博客:https://segmentfault.com/a/1190000016418021?utm_source=tag-newest

  7. centos7—计划任务(at、cron)

    centos7—计划任务(at.cron) 2018-08-08 14:33:17 coisini_覔 阅读数 3751更多 分类专栏: Linux基础 crond/at   版权声明:本文为博主原创 ...

  8. 《一头扎进》系列之Python+Selenium框架设计篇4- 价值好几K的框架,呵!这个框架有点意思啊

    1.简介 前面文章,我们实现了框架的一部分功能,包括日志类和浏览器引擎类的封装,今天我们继续封装一个基类和介绍如何实现POM.关于基类,是这样定义的:把一些常见的页面操作的selenium封装到bas ...

  9. COCI 2012 Inspektor

    coci 2012 inspektor 街道由左到右分布着\(N\)个办公室,编号为\(1\)到\(N\),最开始,每个办公室都是空的,一些公司将入住,并赶走办公室里面现有的公司.一人每天会路过一些连 ...

  10. Java入门(一)——类、抽象类和接口

    Java是一门面向对象语言,可以看出"对象"在Java有着举足轻重的位置.那么,"对象"从何而来呢?那必须是丈母娘造出来的,下面我们就先来说说这个丈母娘--类. ...