无法使用 TwiML Bin 和资产进行自定义 Twilio 调用

Can't make custom Twilio Call with TwiML Bin and Assets

我正在尝试通过在 Twilio TwiMl Bins 上托管一个 xml 文件并在资产中托管一个 mp3 文件来进行 twilio 调用:

我只想说一个简单的句子,然后播放一个5-10秒的片段。目前当我 运行 我的代码:

# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client


# Your Account Sid and Auth Token from twilio.com/console
account_sid = "stuff"
auth_token = "stuff"
client = Client(account_sid, auth_token)

call = client.calls.create(
            url="https://handler.twilio.com/twiml/EHdff1ba57cc168191864794c6c44c1723",
            from_="+1mytwilionumber",
            to="+1mynumber"                  
        )

print(call.sid)

我刚接到一个电话 - 试用消息然后静音,然后通话结束。有什么建议吗?

没关系!所以这有效:

https://support.twilio.com/hc/en-us/articles/223132187--Not-Authorized-error-when-trying-to-view-TwiML-Bin-URL

但是在您 "sign" 使用 hmac 身份验证的 HTTP 请求之后,您的 twilio 调用只会 运行 一次。脚本是

const crypto = require('crypto')
    , request = require('request')

const url = process.argv[2] + '?AccountSid=' + process.env.TWILIO_ACCOUNT_SID

const twilioSig = crypto.createHmac('sha1', process.env.TWILIO_AUTH_TOKEN).update(new Buffer(url, 'utf-8')).digest('Base64')

request({url: url, headers: { 'X-TWILIO-SIGNATURE': twilioSig }}, function(err, res, body) {
  console.log(body)
})

确保安装了节点、npm 和请求模块。

npm install request --save

一切顺利! 运行 这个脚本就在你的 python 调用脚本之前。

仅供参考,您还可以在拨打电话之前通过将 TWIML 上传到垃圾箱来即时制作 TWIML/robocalls。它只需要一个 public URL。我发现的这个 project 实际上通过动态上传 TWIML/XML、获取新的 URL(对于新生成的 TWIML)然后进行 Twilio 调用来演示该技术。 restwords.com 网站非常适合用于此目的。