我创建了一个控制器,它将消息发送到传入消息中指定的列表。 当我发送完所有消息后,我想返回一个TwiML响应。
但是,如果列表太大,看起来Twilio会超时。 如果列表包含10个数字,则返回响应,如果它包含40个数字,则Twilio会在仪表板中显示11200错误。
始终发送传出消息,它只是失败的响应。
我做过这样的事情:
foreach (var receiver in receivers)
{
try
{
await MessageResource.CreateAsync(
from: new PhoneNumber(SomeGroupName),
to: new PhoneNumber(receiver.Mobile),
body: SomeOutgoingMessage);
}
catch (SomeException e)
{
//Errorhandling
}
}
response.Message("Message sent to all members")
return TwiML(response);
有谁知道为什么会这样?还有其他办法吗?
答案 0 :(得分:1)
Twilio开发者传道者在这里。
Twilio会等待15秒钟,以便您的申请获得回复。如果您的应用需要超过15秒,Twilio will record an 11200 error。在您的情况下,将消息发送到10个号码需要不到15秒,但对于40个号码,则需要更长的时间。
如果所有消息都相同,那么我建议使用Twilio Notify通过一个API请求发送所有消息。我在how to send bulk SMS messages with Twilio and Node.js上写了一篇博文。我知道您正在使用C#,但这对于解释和演练来说值得一读。
您将用于send bulk SMS with C#的代码应该看起来像这样:
using System;
using System.Collections.Generic;
using Twilio;
using Twilio.Rest.Notify.V1.Service;
public class Example
{
public static void Main(string[] args)
{
// Find your Account SID and Auth Token at twilio.com/console
const string accountSid = "your_account_sid";
const string authToken = "your_auth_token";
const string serviceSid = "your_messaging_service_sid";
TwilioClient.Init(accountSid, authToken);
var notification = NotificationResource.Create(
serviceSid,
toBinding: new List<string> { "{\"binding_type\":\"sms\",\"address\":\"+15555555555\"}",
"{\"binding_type\":\"sms\",\"address\":\"+123456789123\"}" },
body: "Hello Bob");
Console.WriteLine(notification.Sid);
}
}
让我知道这是否有帮助。
答案 1 :(得分:0)
https://www.twilio.com/docs/api/errors/11200
看起来他们花费更长的时间执行操作,而不是您的应用愿意等待它执行该操作。