介绍

组织 LINE Bot 生产的常用代码和参考站点。 (不时更新)

关联

LINE Bot完成概要

LINE 开发者帐户、提供商、频道已创建、Google 帐户已创建。 (开始使用消息 API | LINE 开发人员)

获取频道访问令牌

LINE 开发者控制台打开“消息传递 API”选项卡。点击“Channel access token (long-lived)”的“Issue”,复制key并记下。 (设置属性(环境变量)用于)

创建 Google Apps 脚本

谷歌云端硬盘右键单击我的驱动器 -> 其他 -> 选择 Google Apps 脚本
【LINE Messaging API, GAS】LINE Bot 制作でよく使うコード集

创建 .gs 文件

代码示例:Github

部署

选择部署 -> 新部署
【LINE Messaging API, GAS】LINE Bot 制作でよく使うコード集

选择“Web App”作为类型
【LINE Messaging API, GAS】LINE Bot 制作でよく使うコード集

允许访问“所有人”
【LINE Messaging API, GAS】LINE Bot 制作でよく使うコード集

复制网址
【LINE Messaging API, GAS】LINE Bot 制作でよく使うコード集

每次修改代码时,都需要通过“部署→管理部署→编辑(铅笔图标)”将版本设置为“新版本”并部署。

配置 webhook URL

LINE 开发者控制台打开“消息 API”选项卡。将复制的 URL 设置为 Webhook URL开启“使用 webhook”
【LINE Messaging API, GAS】LINE Bot 制作でよく使うコード集

设置属性(环境变量)

将访问令牌设置为环境变量

运行时设置环境变量(运行后删除代码)

const SCRIPT_PROPERTIES = PropertiesService.getScriptProperties();  // スクリプトプロパティを取得
SCRIPT_PROPERTIES.setProperty("ACCESS_TOKEN", "ここにアクセストークンを入力");

保存数据 | 物业服务 | Apps 脚本

获取访问令牌

const SCRIPT_PROPERTIES = PropertiesService.getScriptProperties();
const ACCESS_TOKEN = SCRIPT_PROPERTIES.getProperty("ACCESS_TOKEN");

读取数据 | 物业服务 | Apps 脚本

接收事件

// イベントを受け取って実行する
function doPost(e){
  const EVENTS = JSON.parse(e.postData.contents).events;
  for (const event of EVENTS){
    execute(event);
  }
}

// イベントを実行する
function execute(event){
  const EVENT_TYPE = event.type;          // イベントのタイプ
  const USER_ID = event.source.userId;    // 送信元ユーザーのID
  const REPLY_TOKEN = event.replyToken;   // 応答メッセージを送る際に使用する応答トークン

  if(EVENT_TYPE === "follow"){            // フォローイベントの場合
  }
  else if(EVENT_TYPE === "message"){      // メッセージイベントの場合
    if(event.message.type === "text"){    // テキストメッセージの場合
      let text = event.message.text;      // 受け取ったテキスト
    }
  }
  else if(EVENT_TYPE === "postback"){     // ポストバックイベントの場合
    const PB_DATA = event.postback.data;  // ポストバックデータ
  }
}

Webhook 事件对象 | 消息 API 参考

发信息

/*
ACCESS_TOKEN: アクセストークン
messages: メッセージオブジェクトの配列(最大件数:5)
*/
function sendReplyMessage(replyToken, messages){
  const URL = "https://api.line.me/v2/bot/message/reply";
  const RES = UrlFetchApp.fetch(URL, {
    "headers": {
      "Content-Type": "application/json; charset=UTF-8",
      "Authorization": "Bearer " + ACCESS_TOKEN,
    },
    "method": "post",
    "payload": JSON.stringify({
      "replyToken": replyToken,
      "messages": messages 
    }),
  });
  return RES;
}

发送消息 | LINE 开发者
发送响应消息 | 消息 API 参考

消息对象

消息对象 | 消息 API 参考

获取短信

function getTextMsg(text){
  return {
    "type": "text",
    "text": text
  };
}

短信 | 消息 API 参考

获取图片消息

function getImgMsg(url, preUrl){
  return {
    "type": "image",
    "originalContentUrl": url,
    "previewImageUrl": preUrl
  };
}

图像消息 | 消息 API 参考

获取弹性消息

function getFlexMsg(label, content){
  return {
    "type": "flex",
    "altText": label,
    "contents": content
  };
}

Flex 消息 | 消息 API 参考

使用消息公共属性获取消息

示例 1:快速回复短信

/*
QUICK_REPLY: itemsオブジェクト
*/
function getTextMsgQr(text){
  return {
    "type": "text",
    "text": text,
    "quickReply": QUICK_REPLY
  };
}

items 对象 | 消息 API 参考

QUICK_REPLY 示例
/*
items: クイックリプライボタンオブジェクト(最大オブジェクト数:13)
*/
const QUICK_REPLY = {
  "items": [
    {
      "type": "action",
      "action": {
        "type": "message",
        "label": "Yes",
        "text": "Yes"
      }
    },
    {
      "type": "action",
      "action": {
        "type": "postback",
        "label": "Buy",
        "data": "action=buy&itemid=111",
        "displayText": "Buy",
        "inputOption": "openKeyboard",
        "fillInText": "---
Name: 
Phone: 
Birthday: 
---"
      }
    },    
    {
      "type": "action",
      "imageUrl": "https://line.me/menu",
      "action": {
        "type": "uri",
        "label": "メニューを見る",
        "uri": "https://example.com/menu"
      }
    }
  ]
};

使用快速回复 | LINE 开发者
快速回复 | 消息 API 参考
快速回复按钮对象 | 消息 API 参考

示例 2:获取带有图标和显示名称更改的文本消息

function getTextMsgChangeSender(text, name, iconUrl){
  return {
    "type": "text",
    "text": text,
    "sender": {
      "name": name,
      "iconUrl": iconUrl
    }
  };
}

更改图标和显示名称 | 消息传递 API 参考

电子表格链接

待添加


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308630660.html

相关文章: