2022年6月26日 星期日

Line bot LIFF v2 建立方式_20200504

 Line bot LIFF v2 將建立 LIFF 功能移到 Line Login Channel,雖然原先建立的 LIFF 仍可執行,但未定何時會失效,官網建議將所有 LIFF 移到 Line Login Channel。新建的 Messaging Channel 則必須在 Line Login Channel 建立 LIFF。

「Python 與 Line bot 機器人」書中第七章需做修正。

建立 Line Login Channel

在 Line Developer 中點選「Create a new Channel」。

再點選「LINE Login」。

App Type 欄選擇「Web app」,輸入各項必填資料欄位,核取同意版權核選方塊,按「Create」鈕。

建立 LIFF

點選「LIFF」頁籤,按「Add」鈕。

按照書中建立「PCHOME」LIFF (Scopes 欄選「openid」及「chat_message.write」,Bot link feature 欄選「On (Normal)」),按「Add」鈕建立LIFF。

點選「PCHOME」。

複製 LIFF URL 連結網址。

修改 ehappyFunc5 圖文選單中的「B」項目:類型改為「連結」,網址為剛才複製的網址。

修改 ehappyFunc5 圖文選單中的「C」項目:類型改為「連結」,使用同樣方式參考書籍建立 LIFFform,並將網址複製到「C」項目的網址。

最後儲存圖文選單。

發布 Line Login Channel

Line Login Channel 必須發布才有作用:點選 Line Login Channel 名稱下方的「Developing」,於對話方塊中按「Publish」鈕,當文字顯示為「Published」時表示已發布。

修改 SDK

Line bot LIFF v2 的 DK 網址改為「https://static.line-scdn.net/liff/edge/2.1/sdk.js」:修改 < index_form.html> 檔第 6 列為:

<script src="https://static.line-scdn.net/liff/edge/2.1/sdk.js"></script>

< index_form.html> 完整程式碼:

1 <!DOCTYPE html>

 2 <html>

 3 <head>

 4     <meta name="viewport" content="width=device-width, initial-scale=1" />

 5     <title>LIFF 表單測試</title>

 6     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>

 7     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">

 8     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>

 9 </head>

10 <body>

11     <div class="row" style="margin: 10px">

12         <div class="col-12" style="margin: 10px">

13             <label>姓名</label>

14             <input type="text" id="name" class="form-control" />

15             <br />

16             <label>日期</label>

17             <input type="date" id="datetime" value="" class="form-control" />

18             <br />

19             <label>包廂</label>

20             <select id="sel_room" class="form-control">

21                 <option selected>生龍廳</option>

22                 <option>活虎廳</option>

23                 <option>美鳳廳</option>

24                 <option>帥凰廳</option>

25                 <option>不使用包廂</option>

26             </select>

27             <br />

28             <button class="btn btn-success btn-block" id="sure">確定</button>

29         </div>

30     </div>

31 

32     <script src="https://static.line-scdn.net/liff/edge/2.1/sdk.js"></script>

33 <script>

34         function initializeLiff(myLiffId) {

35             liff

36                 .init({

37                     liffId: myLiffId

38                 });

39         }

40 

41 function pushMsg(pname, pdatatime, proom) {

42 if (pname == '' || pdatatime == '' || proom == '') {  //資料檢查

43 alert('每個項目都必須輸入!');

44 return;

45 }

46 var msg = "###";  //回傳訊息字串

47 msg = msg + pname + "/";

48 msg = msg + pdatatime + "/";

49 msg = msg + proom;

50 liff.sendMessages([  //推播訊息

51 { type: 'text',

52   text: msg

53 }

54 ])

55 .then(() => {

56 liff.closeWindow();  //關閉視窗

57 });

58 }

59 

60 $(document).ready(function () {

61 initializeLiff('1654154869-O5npdEkj');

62 $('#sure').click(function (e) {  //按下確定鈕

63 pushMsg($('#name').val(), $('#datetime').val(), $('#sel_room').val());

64 });

65 });

66 </script>

67 </body>

68 </html>

存檔後重新上傳到 Heroku 即可。


沒有留言:

張貼留言