使用MessagingResponse时,为什么在回复的短信中没有收到vcard?

时间:2017-11-06 23:25:18

标签: python twilio

当我将MessagingResponse.message与media_url参数一起使用时,或者当我将Media实例附加到预先创建的Message对象并作为我的webhook中的短信的答案(已在twilio上注册)返回时,我将使用vcard。目的地没有收到附在答案上的答案。

当我使用Client.create并使用media_url时,vcard成功收到。

我尝试了两个不同的帐户,结果是一样的。使用Client.create方法的问题是:它将创建一个新的消息旅行,它将花费0.02美元。如果我只回复MessagingResponse,它将花费0.0075美元。

我发现了这一点,但我认为这不相关:iOS failing to render vcf file

对于为什么我能解决这个问题有任何疑虑?

我的配置:

  • 编程语言: python 2.7.12
  • Web框架:Flask 0.12.2
  • Twilio API版本: 6.3.0
  • Endpoing SO: Windows 10

测试代码

from flask import Flask, request, send_from_directory
from twilio.twiml.messaging_response import MessagingResponse, Message, Media
from twilio.rest import Client

app = Flask(__name__, static_url_path="")

@app.route('/vcards/<path:path>')
def send_vcards(path):
    return send_from_directory('vcards', path)

@app.route("/", methods=['GET', 'POST'])
def hey_there():
    """Respond to incoming messages"""
    # Calls with client works fine.
    # client = Client("SID", "TOKEN")
    # client.messages.create(to=request.form["From"], from_="+TWILIO_NUMBER", body="Test with no vcard")
    resp = MessagingResponse().message(body="hey, there!", 
                                       to=request.form["From"])
    resp.append(Media("http://server:port/vcards/test.vcf"))

    return str("Ok")

if __name__ == "__main__":
    app.run(debug=True)

更新

我刚刚发现费用与发送媒体相关,而不是与邮件的回复/开始相关联。如果发送任何媒体(附带media_url或媒体),则需要花费0.02美元。

解决方案

resp = MessagingResponse()
message = Message(to=request.form["From"])
message.body("hey, there!")
message.media("server:port/vcards/test.vcf")
resp.append(message)

解决方案由twilio支持提供。 它的工作方式是这个链接:

Twilio MMS Examples Page

0 个答案:

没有答案