2016-11-17 8 views
2

私のコードは、受信SMSテキストメッセージを受け取り、本文を抽出して、その本文を別の番号に転送します。 (tPhoneはTwilioの数であるとのephoneが、私はメッセージが転送先の番号である)Twilio/FlaskでSMSを転送することによるスキーマ検証の警告

import twilio.twiml 
from flask import Flask, request, redirect 
from twilio.rest import TwilioRestClient 
from passwords import * 

client = TwilioRestClient(account_sid, auth_token) 

app = Flask(__name__) 

@app.route("/", methods=['GET', 'POST']) 
def AlertService(): 
    TheMessage=request.form.get("Body") 
    if (TheMessage != None): 
     print(TheMessage) 
     client.messages.create(to=ePhone, from_=tPhone, body=TheMessage) 
    return str(TheMessage) 

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

コードは動作します(メッセージが転送されます)が、Twilioデバッガは

コンテンツはプロローグでは許可されていない私に指示します。

警告 - 12200

スキーマ検証警告

提供XMLはTwilioマークアップのXMLスキーマに準拠していません。

Twilioに送信されるXMLを修正するにはどうすればよいですか?


編集:私が見つけたもの。 'TheMessage'をあらかじめ定義された文字列(例:TheMessage="hello")に設定しても、私はTwilioから同じエラーを受け取ります。

さらに、XMLを生成して送信しようとすると、同じエラーが発生します。

resp = twiml.Response() 
    XML = resp.message(TheMessage) 
    print(XML) 
    client.messages.create(body=str(XML),to=ePhone,from_=tPhone) 

コードは、私がbody=XMLを試してみて、私はbody=str(XML)をしようとした場合、それはちょうど平文としてXMLを送信する場合の送信に失敗しました。

+0

あなたの電話番号がintではなくStringとして渡されていることを確認してください。 –

+0

@JakeConwayこれらは、私のpasswords.pyファイルに文字列として格納されています。 –

答えて

1

ここではTwilioの開発者のエバンジェリストです。

現時点では、あなたはREST API to forward the SMS messageを使用しているように見えます。このようにすることができますが、を使ってリクエスト内でTwiMLを使用する方が簡単です。 2番目の例では、TwiMLとREST APIを併用しようとしているようですが、それはうまくいかないでしょう。

TwiMLレスポンスを作成し、受信メッセージがある場合はメッセージを追加してから<Message> attributes to and fromを使用して電話番号に転送するだけです。このように:

import twilio.twiml 
from flask import Flask, request, redirect 
from passwords import * 

app = Flask(__name__) 

@app.route("/", methods=['GET', 'POST']) 
def AlertService(): 
    TheMessage=request.form.get("Body") 
    resp = twiml.Response() 
    if (TheMessage != None): 
     resp.message(TheMessage, to=ePhone) 
    return str(resp) 

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

それがまったく役に立ったら教えてください。

+0

"from_ = tPhone"(属性 'from_'は 'Message'要素には表示されません)を削除する必要がありましたが、その後はすべて機能しました。ありがとうございます。 –

+0

バー、申し訳ありません。テストする時間がありませんでした。私の答えを編集します。乾杯! – philnash

関連する問題