由于未知错误,我无法通过Twilio教程代码发送短信

2024-05-18 05:38:04 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我使用Twilio提供的示例代码向我的手机发送短信。当使用示例代码时,我不断得到相同的错误,我不确定错误是什么。我已经尝试过在这个网站上搜索,看看是否有人有任何类似的错误,我也遵循了Twilio一步一步的过程来设置和接收短信。所以我很困惑为什么会这样。我使用的所有资源都没有给我一个关于为什么会发生这种情况的答案。出于安全考虑,我的电话号码用星号标出了

# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client


# Your Account Sid and Auth Token from twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ['ACa30b8fa59e7eba0e6dc5dbedaf5e8fcb']
auth_token = os.environ['REDACTED']
client = Client(account_sid, auth_token)

message = client.messages \
                .create(
                     body="What is up Med",
                     from_='+***********',
                     to='+***********'
                 )

print(message.sid)

错误如下:

Traceback (most recent call last):
File "/Users/administrator/Documents/Unit 5 Proj.py", line 8, in <module>
account_sid = os.environ['ACa30b8fa59e7eba0e6dc5dbedaf5e8fcb']
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/os.py", line 679, in __getitem__
raise KeyError(key) from None
KeyError: 'ACa30b8fa59e7eba0e6dc5dbedaf5e8fcb'

Tags: the代码fromimportcom示例os错误
2条回答

读你的错误

您对os.eviron[your-key]的调用与raise KeyError(key) from None KeyError发生错误。谷歌搜索时,当您试图从os.eviron中的字典中访问缺少的密钥时,会发生此错误。您是否在env变量中设置了键?如果您在代码中索引的密钥是您的帐户sid和身份验证令牌,那么您肯定是做错了

您在这里混淆了两个概念:

  1. 在代码中硬编码Sid和身份验证令牌值
  2. 从执行环境中提取Sid和身份验证令牌值

你只想做其中一个,而不是两个。最直接的方法是只执行#1,如下所示:

account_sid = 'ACa30b8fa59e7eba0e6dc5dbedaf5e8fcb'
auth_token = 'REDACTED'

如果要执行#2,则需要在运行程序的环境中定义两个导出变量。看起来您在Mac上,所以您可以在~/.bash_profile文件中执行类似操作:

export TWILIO_SID=ACa30b8fa59e7eba0e6dc5dbedaf5e8fcb
export TWILIO_AUTH_TOKEN=REDACTED

然后在Python代码中执行此操作:

account_sid = os.environ['TWILIO_SID']
auth_token = os.environ['TWILIO_AUTH_TOKEN']

更新:我要补充的是#2在生产代码中更受欢迎,因为它避免了您必须将敏感帐户凭据签入到其他人将看到的共享源代码存储库中。这就是增加复杂性的全部原因。如果你只是在鬼混或做一个私人项目,那么#1就可以了。如果您正在进行代码会被其他人看到的工作,请执行#2将您的凭证保存在您自己的手中

相关问题 更多 >