0

- - - - - - - - - - - - 編集 - - - - - - - - - - - -

request.form['Body'] を適切に機能させる方法はまだわかりません。このリクエストを適切に使用していない可能性がありますが、他の方法で使用する方法がわかりません。1 つの提案はリスナーを作成することでしたが、どこから始めればよいかわかりません。

だから私は今それを推測します:

1) 私はどこに完全に迷惑をかけていますか? 2) リスナーの作り方について何か提案はありますか?

これが私のセットアップのスケルトンです。

from flask import Flask, request, redirect
import twilio.twiml
from twilio.rest import TwilioRestClient
from sys import exit

twil_number = "XXXXXXXXX"
sid = "XXXXXXXXXXXXXXXXXXXX"
token = "XXXXXXXXXXXXXXXXX"
tos = "XXXXXXXXXX"

client = TwilioRestClient(sid,token)


app = Flask(__name__)

@app.route("/", methods=['GET', 'POST'])

##### get the SMS ####

def smsGet():

    try:
        action = request.form['Body']
    except RuntimeError:
        action = raw_input("> ")

    return action.lower()


### Snd the SMS ####
def smsSend(bods):

    client.sms.messages.create(to=tos, from_=twil_number, body= bods)


class TestClass(object):

    def doStuff(self):

        smsSend("Intro Text")

        ## I don't know why this is buggering up. ###
        go = smsGet()

        if go == "yes":
            smsSend("yes")
            exit(1)

        else:
            pass
            exit(1)


a = TestClass()
a.doStuff()



#### running the app ###

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

----------------------- 年上 ----------------------- 私はtwilio/pythonでテキストアドベンチャーゲームを作っています。データベースなどはありません。シェルからローカルで実行する単なる Python ベースのテキスト アドベンチャーです。

SMS の送信はすべて問題ありませんが、次のようなメッセージを取得するにはどうすればよいですか。

request.form['Body'].lower()

次のように動作します。

raw_input("> ").lower()

これまでのところ、私が試したほとんどのことは、Flaskがこのエラーをスローするだけです:

RuntimeError('リクエストコンテキスト外で動作中')

文脈のために。私のシーンの多くは、次のように設定されています。

class Hallway(Scene):
    def enter(self):

        hall = "You pause in the Hallway. You could: Go to the bedroom. Go to the kitchen to see if there's food. Check on your human in the office."
        send_sms(hall)

        #action = raw_input("> ").lower() 
        #would like this to work like raw _input()
        action = request.form['Body'].lower() 

        if action == "kitchen":
            return 'kitchen'
        elif action == "bedroom":
            return 'bedroom'
        elif action == "office":
            return 'office'
        else:
            nope = "But I don't want to hang in the hallway..."
            send_sms(nope)
            return 'hallway'

そして、 send_sms() はまさにこれです:

def send_sms(bods):

    client.sms.messages.create(body=bods,to=tos,from_=froms)

私が完全にめちゃくちゃになっている場所について何か提案はありますか?

ありがとう!:)

4

2 に答える 2

0

Flask 内またはコマンド ラインからそのコードを実行する場合は、 から、requestまたは を使用して、アクションを取得する関数を記述する必要がありますraw_input。次のようになります。

from flask import request

def get_action():
    try:
        action = request.form['Body']
    except RuntimeError:
        action = raw_input("> ")
    return action.lower()
于 2013-10-12T03:45:18.010 に答える