2015-12-02 70 views
0

我想建立一個測試Twilio腳本,以便POST請求可以使用由方法返回的值是一個腳本。 這些值被設置爲環境變量,我已經在Python shell中使用與腳本相同的命令檢查它們是否正確。 正在使用Python 2.7。 環境變量作爲字符串存儲並返回。Twilio返回方法作爲POST值

from twilio.rest import TwilioRestClient 
import os 

ACCOUNT_SID = os.environ['ACCOUNT_SID'] 
AUTH_TOKEN = os.environ['AUTH_TOKEN'] 
client = TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN) 

def target_number(): 
    return os.environ['TARGET_NUMBER'] 

def my_number(): 
    return os.environ['MY_NUMBER'] 

message = client.messages.create(
    body="foo bar", # Message body, if any 
    to=target_number(), 
    from_=my_number(), 
) 
print message.body 

我收到以下錯誤:

python my_twilio_testing_script.py 
Traceback (most recent call last): 
    File "my_twilio_testing_script.py", line 19, in <module> 
    to=target_number(), 
    File "my_twilio_testing_script.py", line 9, in target_number 
    return os.environ['TARGET_NUMBER'] 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/UserDict.py", line 23, in __getitem__ 
    raise KeyError(key) 
KeyError: 'TARGET_NUMBER' 

回答

0

Twilio開發者傳道這裏。

看來您的一些環境變量正在工作,否則當您設置帳戶SID和身份驗證令牌時腳本會炸燬。

因此,似乎TARGET_NUMBER可能沒有設置。在您運行腳本的終端窗口中,是否可以執行以下bash命令:

$ echo $TARGET_NUMBER 

這是顯示您期望的數字嗎?如果不是,則可能需要再次導出環境變量。

+0

是的,我檢查了。看來我不能在這些參數中使用函數的返回值。 尚未找到解決方法,雖然似乎無法完成,但似乎很奇怪。 解決方案可能是將Twilio調用提取到函數中,並將其循環並作爲循環的一部分來不斷更改環境變量。 我還沒有機會嘗試這個 –