Closed11
Twilio で電話をかけるまで
ドキュメント
まずは電話番号を購入する
1 ヶ月 672 円で買えるっぽい
買おうとしたらエラーが。
Account is restricted from provisioning new long code Phone Numbers
メールで連絡したら解除してくれるっぽい。
前にも 1 度電話番号買おうとしたけどいらなくなって、手続きしなかったからかな。
TwilioコンソールまたはAPI経由で新しいTwilio電話番号を購入しようとすると、一部のユーザーにエラー22300が表示される場合があります(APIを使用する場合、これはエラー22300に対応します)。
このエラーは、Twilio Complianceがお客様のアカウントに新しいロングコード電話番号のプロビジョニングを一時的に制限していることを意味します。この制限は、不審なアカウントアクティビティや、TwilioのAcceptable Use PolicyまたはMessaging Policyに違反する可能性のある行為があったために課される可能性があります。
このエラーが発生した場合は、verifymyaccount@twilio.com までご連絡いただき、お客様のアカウントからこの制限を解除するようリクエストしてください。その際、以下の重要な詳細を必ず明記してください:
Twilio アカウント SID
貴社名
ユースケースの簡単な説明
www.DeepL.com/Translator(無料版)で翻訳しました。
こんな感じでメール送ってみた
Dear Customer Service,
I am writing to request the removal of a restriction on my account which currently prevents the provisioning of new long code phone numbers. Below are the details of my account and the nature of the usage:
Twilio Account SID: {SID をここに記入}
Name of Business: Personal Use
Brief Explanation of Use Case: {ユースケースの説明}
Please let me know if there is any additional information you require in order to process this request.
Best regards,
You're limited to 50 daily messages. New Subaccounts can't be added. Check your email for details.
こんなアラートも出てる
のサンプルコードを TypeScript で少し書き換えて実行したら、電話かかってきた
index.ts
import Twilio from "twilio";
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = Twilio(accountSid, authToken);
client.calls
.create({
url: "http://demo.twilio.com/docs/voice.xml",
to: process.env.TO || '',
from: process.env.FROM || '',
})
.then((call) => console.log(call.sid));
Azure Communication Services も試してみたけど、
リマインドを電話で伝えるような一方向の電話をかけるだけなら Twilio の方が使いやすい。
ちなみに https://demo.twilio.com/docs/voice.xml
の中身は下記
<Response>
<Say voice="woman">Thanks for trying our documentation. Enjoy!</Say>
<Play>http://demo.twilio.com/docs/classic.mp3</Play>
</Response>
仕様は下記
こんな感じで、好きなメッセージを喋らせられる
index.ts
import Twilio from "twilio";
import { escape } from "querystring";
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = Twilio(accountSid, authToken);
const { VoiceResponse } = Twilio.twiml;
const response = new VoiceResponse();
response.say({ language: "ja-JP" }, "こんにちは。しっかリマインダーです。「ご飯を食べる」時間になりました");
console.log(response.toString());
client.calls
.create({
url: "http://twimlets.com/echo?Twiml=" + escape(response.toString()),
to: process.env.TO || "",
from: process.env.FROM || "",
})
.then((call) => console.log(call.sid));
await
で書き換え
index.ts
import Twilio from "twilio";
import { escape } from "querystring";
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = Twilio(accountSid, authToken);
const { VoiceResponse } = Twilio.twiml;
const response = new VoiceResponse();
response.say(
{ language: "ja-JP" },
"こんにちは。しっかリマインダーです。「ご飯を食べる」時間になりました"
);
console.log(response.toString());
const call = await client.calls.create({
url: "http://twimlets.com/echo?Twiml=" + escape(response.toString()),
to: process.env.TO || "",
from: process.env.FROM || "",
});
console.log(call.sid);
このスクラップは2024/05/12にクローズされました