我试图屏蔽员工和客户之间的数字,到目前为止,我已经获得了短信和语音工作,但我无法确定如何传递彩信。我是否需要使用REST API,或者对webhook的响应是否足够?它不像REST API那么困难。看起来应该有一个TwiML响应可以工作,就像有短信和语音一样。
在Python中,我使用的代码类似于:
import requests
from django.views import View
from twilio.twiml.messaging_response import MessagingResponse, Media
from django.http import HttpResponse
class SMSWebhook(View):
def post(self, request):
twilio_out = MessagingResponse()
twil_in = request.POST
# Call database to determine recipient's number
scheduler_data = requests.post('my_server_url', data={'to': twil_in['To'], 'caller': twil_in['From']})
scheduler_in = scheduler_data.json()[0]
# check if it is a valid message
if scheduler_data.status_code == 200:
twilio_out.message(body=twil_in['Body'], to=scheduler_in['recipient'], from_=twil_in['To'])
if twil_in['NumMedia']:
for i in range(int(twil_in['NumMedia'])):
twilio_out.append(Media(twil_in['MediaUrl' + str(i)]))
else:
twilio_out.message('sms_default_message')
return HttpResponse(str(twilio_out), content_type='text/xml')
它产生的TwiML是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Message from="+XXXXXXXXXXX" to="+XXXXXXXXXXX" />
<Media>https://api.twilio.com/2010-04-01/Accounts/...</Media>
</Response>
答案 0 :(得分:1)
Twilio开发者传道者在这里。
使用TwiML发送彩信时,您需要使用<Body>
and <Media>
nouns内的<Message>
。您的<Media>
似乎位于示例中的<Message>
之外。
你可能想要这样的东西:
if scheduler_data.status_code == 200:
message = twilio_out.message(to=scheduler_in['recipient'], from_=twil_in['To'])
message.append(Body(twil_in['Body']))
if twil_in['NumMedia']:
for i in range(int(twil_in['NumMedia'])):
message.append(Media(twil_in['MediaUrl' + str(i)]))
else:
请注意我如何保存对<Message>
的引用,然后将<Media>
直接附加到其中。
让我知道这是否有帮助。