LINE push message

    內容表格
    沒有標頭

    版本為 07:47, 30 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    Tutorials:
    * Line Notify: https://notify-bot.line.me/doc/en/
    * Line Messaging API (Advanced): https://developers.line.biz/en/docs/

    ## Line Messaging API (Line Bot)
    ### Create an Line Business ID and an new channel
    1. Go to the URL: https://developers.line.biz/en/ , Login as your Line account.
    2. Create a new provider
    3. Select **Messaging API** and create a channel

    ### Configure the BOT
    1. Go to the URL: https://developers.line.biz/en/ , Login as your Line account.
    2. Select **Provider List** > *your-new-provider-name*
    3. Select *your-new-app-name*
    4. Select **Channel settings**
      + Channel access token (long-lived): Issue a new access token  
          *NOTE: the 0 second is recommended for first time development*
      + Allow bot to join group chats: **Enabled**
      + Use webhooks: **Enabled**
      + Webhook URL: *NOTE: Please check the following steps*

    ### Create a webhook site using Google Apps Script service
    1. Go to the site: https://script.google.com/ *(NOTE: assuming you already have a GCP account)*
    2. Create new project (new script) called LineBot and Copy-Paste the codes below
    3. Save and Publish it (佈署為網路應用程式)
        + 專案版本: 新增 *(NOTE: 不要輸入版號)*
        + 具有應用程式存取權的使用者: 任何人、匿名者
    4. Take a note of the public URL
    5. Back to the site: https://developers.line.biz/en/ and input the URL above into the field 'Webhook URL'.

    LineBot webhook script:
    ```
    function doPost(e) {
      var CHANNEL_ACCESS_TOKEN = 'Here is hash key for Channel-Access-Token';
      var msg = JSON.parse(e.postData.contents);
      console.log(msg);
      return JSON.stringify({});
    }
    ```

    ### Testing the webhook script
    1. Add the Bot as a friend on your Line using QR code or searching the Line-ID of the Bot.
    2. Go to the site: https://script.google.com/ , 選擇 **我的專案** , 選擇 **LineBot** , 在右邊的細項功能,選擇 **Stackdriver 記錄** .
    3. 進入 **記錄** 頁面  
        *NOTE: 一旦 webhook 程序被 Line 觸發, 會將訊息顯示在這裡*
    4. Sending a test message to the Bot from your Line
    5. If webhook script works fine you will see something on the Stackdriver 記錄 web.  
        *NOTE: the logs will contain the info of the userid/groupid that the message is sent from*

    ## Sending a test message using API
    To send a message to specified user or group using API the userid or groupid of the recipients are required for the API.
    >NOTE: the userid/groupid is different from Line ID/Group name.

    How to get the userid of the specified username:
    1. Add the bot as a friend on the specified username
    2. The user sends a test message to the Bot
    3. The webhook script that we created will got some info that contains the userid or groupid.

    Sending message using shell:
    ```
    curl -v -X POST https://api.line.me/v2/bot/message/push \
    -H 'Content-Type:application/json' \
    -H 'Authorization: Bearer CHANNEL_ACCESS_TOKEN' \
    -d '{
        "to": "Ua683d0cd676d2fa5c03fc45a3c",
        "messages":[
            {
                "type":"text",
                "text":"From Bot : 測試"
            }
        ]
    }'
    ```
    > my uid=Ua683d0cd676d5b43462fa5c03fc45a3c  
    > my gid=Cd3ac82cde8fd7f7467cd7ea6e3cd21b3


    ## Manager the Bot
    Go to the URL: https://admin-official.line.me/
    + Getting the Line ID of the Bot or QR code so that adding the bot as a friend.

    ## Webhook Scripts
    JAVA: sending an email with username info
    ```
    var CHANNEL_ACCESS_TOKEN = '<CHANNEL_ACCESS_TOKEN>';

    function getUsername(userId) {
      var url = 'https://api.line.me/v2/bot/profile/' + userId;
      var response = UrlFetchApp.fetch(url, {
        'headers': {
          'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN
        }
      });
      return JSON.parse(response.getContentText()).displayName;
    }

    function doPost(e) {
      var messageText = JSON.parse(e.postData.contents).events[0].message.text;
      var userId = JSON.parse(e.postData.contents).events[0].source.userId;
      var username = getUsername(userId);
     
      MailApp.sendEmail('sample@mail.com', 'Forwarded LINE Messages', 'From: ' + username + String.fromCharCode(10) + messageText);
      return JSON.stringify({});
    ```



    ## Reference

    * [LINE Notify – LINE 提供的免費通知服務](https://mr117119.wordpress.com/2017/...C%8D%E5%8B%99/)
    * [Line Message API 初戰!](https://kantai235.github.io/2017/03/...ineMessageAPI/)
    * [【功能介紹】Messaging API](http://at-blog.line.me/tw/messaging_api_intro)
    * [實作 LINE 聊天機器人 ( Google Apps Script )](https://www.oxxostudio.tw/articles/2...ps-script.html)
    * [Chatbot 開發指南:使用 LINE Bot PHP SDK 打造問答型聊天機器人](https://www.appcoda.com.tw/line-chatbot-sdk/)
    * [用 PHP 實現 Line Message API 接收系統訊息 ](https://blog.toright.com/posts/5727/...%E6%81%AF.html)
    * [[Line Bot] Messaging Api 回話機器人 (PHP)](https://andynote.com/?p=90)
    * [用 Docker 發送 Line 訊息](https://blog.wu-boy.com/2016/11/send...ten-in-golang/)
    * [Line Chatbot 開發攻略(一)](https://medium.com/hondtour/line-cha...0-969fd592c08e)
    * [LINE Chatbot 開發攻略(二)](https://medium.com/hondtour/line-cha...C-3ce2d54b21ae)
    * [LINE Bot聊天機器人程式開發教學(七):從ESP8266/Arduino控制板觸發Line發布訊息](https://swf.com.tw/?p=1118)
    * [使用C#開發LINE Bot系列文索引](http://studyhost.blogspot.com/search/label/LineBot)
    * Line emojis
        + https://qiita.com/hisaharu/items/613baad81a4161c3c6c2
        + https://github.com/line/line-bot-sdk-php/issues/54

    Powered by MindTouch Core