zoukankan      html  css  js  c++  java
  • LINE 项目总结

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

    1 alert(1,2,3);

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

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

     1         /**
     2          * line网页版登录,通讯验证给予oauth2.0
     3          * @param client_id line后台配置的id,请联系相关人员索要 就是line当中的Channel ID 1601124***
     4          * @param gameUrl 游戏地址,登录后会跳转到此地址并携带可使用一次的code
     5          * state 是咱们自定义的参数
     6          */
     7         //client_id: string, gameUrl: string, state: string
     8         function login(client_id,gameUrl,state) {
     9             let url = encodeURIComponent(gameUrl);
    10             //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');
    11             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';
    12         }

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

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

      首先是引入line的sdk

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

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

    1     function initApp(data){
    2             line_userId = data.context.userId;//"U3164697f9daea7dcc5c69fde8bf4a***";
    3             
    4         }
    5         window.onload=function(){
    6             liff.init(data=>{
    7                 initApp(data);
    8             });
    9         }

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

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

  • 相关阅读:
    叨叨叨
    四舍五入VS银行家舍入
    是雏还是鹰&mdash;&mdash;编程规范之变量命名
    .Net下二进制形式的文件(图片)的存储与读取(原创)
    asp.net中<%%>形式的用法(原创)
    让Hashtable支持自定义排序(原创)
    .NET下的迭代器(Iterator)模式
    本地视频播放-ios
    cocos2dx srand(time(NULL))重新设置一个随机种子
    cocos2dx 游戏重置方法
  • 原文地址:https://www.cnblogs.com/daniao11417/p/11765702.html
Copyright © 2011-2022 走看看