【问题标题】:Twilio POST request using Alamofire on iOS在 iOS 上使用 Alamofire 的 Twilio POST 请求
【发布时间】:2017-03-22 22:38:41
【问题描述】:

我有这个 IBAction,应该只是测试发送 SMS:

    let todosEndpoint: String = "https://api.twilio.com/2010-04-01/Accounts/\(ACCOUNT_SID)/Messages.json"
    let message = ["To": "+1555...5555", "From": "+555...5555", "Body": "Hello!"]
    for item in message {
        print(item)
    }

    Alamofire.request(todosEndpoint, method: .post, parameters: message, encoding: JSONEncoding.default)
        .authenticate(user: ACCOUNT_SID, password: ACCESS_TOKEN)
        .responseJSON { response in
            debugPrint(response)

    }

但是,我得到了这样的回应:

[Result]: SUCCESS: {
    code = 21603;
    message = "A 'From' phone number is required.";
    "more_info" = "https://www.twilio.com/docs/errors/21603";
    status = 400;
}

我确定我提供了正确的电话号码和身份验证,并且我使用 python 来测试使用我的 API 密钥和电话号码发送消息。 我的字典的结构是错误的还是什么? 感谢您的帮助!

【问题讨论】:

  • Twilio 期望 POST 参数作为 form-urlencoded 值传递。看起来您正在对它们进行 JSON 编码。看看这篇文章:twilio.com/blog/2016/11/…
  • 谢谢!我所要做的就是将 JSONEncoding 更改为 URLEncoding...

标签: ios swift sms twilio alamofire


【解决方案1】:

这里是 Twilio 开发者宣传员。

我们不建议您直接从您的应用程序对 Twilio 进行 API 调用。您需要以某种方式在应用程序中包含您的帐户凭据,以便恶意攻击者可以反编译应用程序、提取您的详细信息并滥用您的 Twilio 帐户。

相反,我们建议您设置自己的服务器,以确保凭据安全,然后自行向该服务器发出请求。在sending SMS messages on iOS with Twilio, Swift and Alamofire 上查看这篇博文。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多