Twilio Messaging APIを使ってSMS一斉送信のシステムを構築してみた

Twilio Messaging APIを使ってSMS一斉送信のシステムを構築してみた

Twilio Messaging APIを使ってSMS一斉送信のシステムを構築してみた
2025.09.05

こんにちは、昴です。
今回はTwilio Messaging APIを使ってSMS一斉送信のシステムを構築してみました。

はじめに

Twilioは電話やSMS、チャットなどのコミュニケーション機能を組み込むためのクラウドベースのAPIプラットフォームです。TwilioのAPIを利用することで通信ソリューションを自由にカスタマイズして構築することができます。
今回はTwilio Messaging APIを使ってSMSの一斉送信を行ってみたいと思います。

Twilioコンソールの準備

電話番号の準備

SMSの送信のために電話番号を用意します。TwilioコンソールのPhone Number > Manageへ移動し、すでに番号をお持ちの場合はActive numberから使用、まだ番号をお持ちでない場合はBuy a numberから購入して使用します。

コンソールのActive number

コンソールでの確認

スクリプトを作成する前に確認する事項として、下記を確認して使用します。アカウントのSIDとトークンはTwilioコンソールのダッシュボードから確認でき、使用する電話番はコンソールで購入したものを使用します。(Phone Numbers > Manage > Active numbers)

  • アカウントのSID
  • アカウントのトークン
  • 購入した電話番号

環境構築

スクリプトの作成

プロジェクトフォルダを作成し、Twilioのパッケージをインストールしていきます。また今回はNode.js 環境があることを前提として作成していきます。

npm install twilio csv-parse @types/node typescript ts-node

.envファイル作成

accountSid、authToken、fromNumberには環境変数を入れているため、.envファイルに実際の値を入れておきます。

TWILIO_ACCOUNT_SID=アカウントSID
TWILIO_AUTH_TOKEN=Authトークン
TWILIO_FROM_NUMBER=購入した電話番号

実装

tsファイル作成

次に実行するためのメインとなるスクリプトを作成していきます。
下記コードを sms-sender.ts として保存します。

import fs from 'fs';
import { parse } from 'csv-parse';
import twilio from 'twilio';
import dotenv from 'dotenv';

dotenv.config();

const accountSid = process.env.TWILIO_ACCOUNT_SID!;
const authToken = process.env.TWILIO_AUTH_TOKEN!;
const client = twilio(accountSid, authToken);

const fromNumber = process.env.TWILIO_FROM_NUMBER!;
const messageBody = 'こんにちわ一斉送信テストです!!!';

// CSV ファイルから送信先リストを読み込む
const sendMessages = async () => {
    const parser = fs.createReadStream('recipients.csv').pipe(parse({ columns: true, trim: true }));

    for await (const row of parser) {
        const to = row.phone;
        try {
            const message = await client.messages.create({
                body: messageBody,
                from: fromNumber,
                to: to,
            });
            console.log(`Sent to ${to}: ${message.sid}`);
        } catch (error) {
            console.error(`Failed to send to ${to}:`, error);
        }
    }

    console.log('All messages processed.');
};

sendMessages().catch(console.error);

実際に送信するメッセージの本文はmessageBodyを編集します。

csvファイル作成

次に一斉送信する宛先となりますが、recipients.csv を作成し、送信先電話番号を一行ずつ記載していきます。 (E.164形式)

phone
+81xxxxxxxxxx
+81xxxxxxxxxx

ここまでで設定が完了となりますので、実際の動作を確認していきます。

確認

一斉送信は下記コマンドで実行します。

npx ts-node sms-sender.ts

下記のように実際にSMSが送信されたことが確認できました。

IMG_8877

まとめ

今回はTwilio Messaging APIを使ってSMS一斉送信のシステムを構築してみました。
本ブログが少しでも参考になれば幸いです。

告知

Twilio/SendGridセミナーを毎月開催しています

クラスメソッドでは毎月Twilio/SendGridのセミナーを実施しています。

クラスメソッドではTwilio/SendGridのセミナーを毎月開催しております。いずれもTwilio及びSendGridを良く知らない方向けに基本的な部分から解説する内容となっておりますので、今後Twilio/SendGridの導入を検討している方や、既に導入済で改めて基本的な部分を勉強したいと考える方は、是非お気軽にご参加いただければと思います。

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.