前段時間做了一個“國外的公眾號”,為什么說是國外的公眾號呢,因為他和微信的公眾號有很多共通之處,當然了也有很多不同的地方,第一個要說的就是,我在列印資訊的時候,使用的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=https://www.cnblogs.com/daniao11417/p/>{ 7 initApp(data); 8 }); 9 }
這樣就能獲取到這個用戶在這個應用下的唯一ID了,
然后有了上面的code和用戶的唯一ID傳給后臺,后臺就能獲取到很多資訊了,具體內容就需要根據業務需求來確定了,我們的業務是確定登錄人在我們系統中的身份,然后繼續進行下一步的操作,然后這個uerid我會保存到sessionStorage 中,以便以后確定操作人等,這里附上一個我自己做的流程圖,方便以后查閱,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/178081.html
標籤:JavaScript
上一篇:React/虛擬DOM
