用谷歌电子表格发送短信

545 阅读3分钟

概述

了解如何使用Twilio的可编程短信,从你的谷歌电子表格轻松发送短信。如果你有一个包含你想发送短信的人的信息的电子表格,这种方法可以让你从电子表格中发送短信,而不需要创建一个复杂的短信发送系统。

以下是一些常见的使用案例

  • 向客户发送销售信息
  • 账单和提醒付款
  • 紧急联络通知
  • 要求呼叫中心的询问者进行调查

在这篇文章中,我们想告诉你如何用客户名单创建一个电子表格,并通过勾选每个客户的复选框来发送短信。


初步准备

  • 你应该已经创建了一个Twilio账户。
  • 准备好你的AccountSID和AuthToken
  • 你已经从Twilio购买了一个美国电话号码
  • 准备一个谷歌电子表格

创建一个客户名单

在谷歌电子表格中创建一个客户名单表。

1.创建一个新的电子表格。

blank-spreadsheet

2. 将电子表格命名为 "客户名单",并创建如下表格。请确保你遵循以下各栏的顺序。任何不同的顺序都会导致错误。
电话号码应以[+] [国番号] [市外局番を含む送信先の番号]的格式输入。如果Google Sheet将电话号码识别为公式,可以在数字前输入一个单引号如果Google Sheet将数字识别为公式,你可以在数字前加一个单引号',使其被识别为文本。(例如:'+8190xxxxxxxx)

customer-list

要创建一个复选框,选择你想在短信发送栏中插入复选框的单元格,并从菜单中选择 "插入"->"复选框"。


创建GAS(谷歌应用程序脚本

在这一节中,我们将编写短信发送的主要功能。

1. 在客户名单电子表格界面,从菜单中选择'工具'->'脚本编辑器',打开脚本编辑器。

menu-script-editor

2. 脚本编辑器将在一个新的标签中打开。

blank-code

3. 点击屏幕上方的'无题项目',将项目名称改为'客户名单'。 4.

4. 删除原来的脚本,然后复制并粘贴以下代码到Code.gs。

// @ts-nocheck
const sender_id = "<購入したUS番号>"; //SMSの送信元番号
const account_sid = "<ACCOUNT_SID>"; // TwilioのAccount SID
const auth_token = "<AUTH_TOKEN>";    // TwilioのAuth Token
const phone_col = 4; // 電話番号のカラム位置情報
const msg_col = 5;   // メッセージのカラム位置情報

const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); //ActiveSheetの取得
const rng = ss.getActiveCell(); //アクティブセルを取得
const flag = rng.getValue(); //アクティブセルのチェックボックスの値を取得
const active_col = rng.getColumn(); // アクティブセルのカラム番号
const message = ss.getRange(rng.getRow(), msg_col).getValue(); //メッセージ内容を取得
const to_number = ss.getRange(rng.getRow(), phone_col).getValue(); //架電先の電話番号を取得

////////////////////////
// スクリプトのメイン
////////////////////////
function myFunction() {
mainSMSLogic();
}

////////////////////////
// SMS Main処理
////////////////////////
function mainSMSLogic() {
if (flag) {
  //チェックボックスがオンになっていたらSMS送信前にチェックボックスでYES/NOを確認します。
  let status = Browser.msgBox(to_number + " にSMSを配信しますか?", Browser.Buttons.YES_NO);
  if (status == "yes") {
    let http_status = reqSendSMS();
    if (http_status) {
      if (http_status.getResponseCode() >= 200 && http_status.getResponseCode() < 300) {
        //SMSの実行結果が正常の場合はセルの背景を緑にします。
        rng.setBackground("#00FF00");
      } else {
        //SMSの実行結果が異常の場合にはセルの背景を赤にします。
        rng.setBackground("#FF0000");
        Browser.msgBox("HTTP Status code:" + http_status.getResponseCode() + " Reason:" + http_status.getContentText());
      }
    } else {
      rng.setBackground("#FF0000");
    }
  }
} else if (!flag) {
  //通常時はセルの背景を白に設定します
  rng.setBackground("#FFFFFF");
}
}
////////////////////////
// SMS配信処理関数
////////////////////////
function reqSendSMS() {
const payload =
{
  "Body": message,
  "From": sender_id,
  "To": to_number
};
const options =
{
  "method": "post",
  "payload": payload,
  "muteHttpExceptions": true
};
options.headers = { "Authorization": "Basic " + Utilities.base64Encode(account_sid + ":" + auth_token) };
let response = null;
try {
  response = UrlFetchApp.fetch("https://api.twilio.com/2010-04-01/Accounts/" + account_sid + "/Messages.json", options);
} catch (error) {
  Browser.msgBox("例外発生:" + error);
}
return response;
}

请酌情用自己的信息替换红色的文字。 5.

5. 按下脚本编辑器顶部的保存按钮或使用'Ctrl+s'来保存文件。

save-botton

  1. 从左边的菜单中选择 "触发器"。

menu-trigger

6. 选择屏幕中间的'创建一个新的触发器'或屏幕右下方的'+添加触发器'。 7.

配置触发器,如下图所示,并保存它。

trigger-setting


检查它的工作情况

让我们回到电子表格中,看看它是如何工作的。

输入你想发送电话的电话号码(应该以数字开头,如+81),并在信息框中写下你想发送的信息。当你完成后,在旁边的方框内打勾,你应该可以发送短信。

当信息被成功发送时,打勾的单元格的背景将变成绿色。

success-pattern

如果发送时有错误,背景会变成红色。

error-pattern

如果信息已成功发送,请检查信息是否已被送到发送短信的手机上。

如果你遇到以下错误,该怎么办?

如果短信没有到达指定的电话号码,你在脚本编辑器中检查执行日志时可能会看到以下信息。当你没有足够的权限来调用外部API时,就会发生这种情况。

exception

Exception: You do not have permission to call UrlFetchApp.fetch. Required permissions: https://www.googleapis.com/auth/script.external_request

在这种情况下,请按照以下步骤添加权限。

1. 在脚本编辑器中,打开 "项目设置",将 "在编辑器中显示 "appsscript.json "清单文件 "复选框勾选为 "开"。

project-settings

2. 选择 "编辑器"->"appsscipt.json」",并按如下方式设置oauthScopes。 3.

{
"timeZone": "Asia/Tokyo",
"dependencies": {},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"webapp": {
  "executeAs": "USER_ACCESSING",
  "access": "DOMAIN"
},
"oauthScopes": [
  "https://www.googleapis.com/auth/script.external_request"
]
}

3. 删除你创建的触发器并重新创建。


摘要

在这篇文章中,我介绍了如何从谷歌电子表格发送短信。当然,如果你在Excel中使用VBA,你可以实现同样的事情。Twilio为许多渠道提供了API,所以你可以自己进行实验。我们迫不及待地想知道你的想法。

我们迫不及待地想看到你所建造的东西!