delphi - 使用 Delphi 的 Twilio 或 Plivo SMS

标签 delphi sms twilio indy plivo

我正在尝试弄清楚如何使用 Delphi 10 Seattle 和 Indy 向 Plivo 或 Twilio 发送 POST 请求以发送 SMS 消息。当我使用此代码进行 Twilio 工作时,我收到一条未经授权的消息作为返回(请注意,我已编辑了我的用户名和身份验证代码):

procedure TSendTextForm.TwilioSendSms(FromNumber, ToNumber, Sms: string; Var Response: TStrings);

var
  apiurl, apiversion, accountsid, authtoken,
  url: string;
  aParams, aResponse: TStringStream;
  mHTTP : TidHttp;

begin

  mHTTP := TIdHTTP.Create(nil);

  apiurl := 'api.twilio.com';
  apiversion := '2010-04-01';
  accountsid := 'AC2f7cda1e6a4e74376***************:2b521b60208af4c*****************';
  url := Format('https://%s/%s/Accounts/%s/SMS/Messages/', [apiurl, apiversion, accountsid]);
  aParams := TStringStream.Create ;
try
  aParams.WriteString('&From=' + FromNumber);
  aParams.WriteString('&To=' + ToNumber);
  aParams.WriteString('&Body=' + Sms);
  aResponse := TStringStream.Create;
try
  mHTTP.Post(url, aParams, aResponse);
finally
  Response.Text  := aResponse.DataString;
end;
finally
  aParams.Free;
end;
end;

我有类似的 Plivo 代码。两家公司都没有任何德尔福支持。谁能告诉我上面我缺少什么?非常感谢。

麦克风

最佳答案

这里是 Twilio 传道者。

除了上面 @mjn 提出的基本身份验证建议之外,我相信您的示例中还有另外两个问题会给您带来问题:

首先,在上面的代码示例中,您的 URL 将是错误的,因为 accountsid 变量将您的 sid 和 auth token 连接在一起。

accountsid := 'AC2f7cda1e6a4e74376***************:2b521b60208af4c*****************';

虽然您确实想要这样做以便使用基本身份验证,但您希望将身份验证 token 作为 URL 的一部分。当您创建 url 属性时,您只需将 SID 作为参数放入 URL 中,如下所示:

/Accounts/ACXXXXXXX/

其次,我还建议不要使用 /SMS 资源,因为它已被弃用。而是使用 /Messages这是较新且具有更多功能的:

/Accounts/ACXXXXXXX/Messages

关于delphi - 使用 Delphi 的 Twilio 或 Plivo SMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34706128/

相关文章:

forms - Delphi:当监视器配置更改时如何恢复表单的原始位置?

delphi - 如何修改 TComponentProperty 以仅显示下拉列表中的特定项目?

android - 通过 ADB 在 Android 上发送短信

java - 是否可以通过 Java 中的 GSM 调制解调器发送/接收消息?

android - 带有 % 百分号的 html 短信正文会使 android 应用程序崩溃

php - Twilio 将来电添加到队列并调用客服人员

delphi - 在运行时获取数值而不是日期值

delphi - TLoginCredentialService 使用示例

twilio - 对于 Twilio Flex 中的语音任务,如何获取当前 session ConferenceSid?

ruby-on-rails - 在我的 Rails 应用程序中使用 twilio 发送短信的问题