如何解决由于未知错误,我无法通过 Twilio 教程代码发送短信
所以我使用 Twilio 提供的示例代码向我的手机发送短信。使用示例代码时,我不断收到相同的错误,我不确定错误是什么。我已经尝试通过该网站进行搜索,看看是否有人遇到过类似的错误,我也按照 Twilio 的逐步流程来设置和接收 SMS。所以我很困惑为什么会这样。我使用的所有资源都没有回答我为什么会发生这种情况。出于安全原因,我的电话号码已加星标。
# 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'
解决方法
您在这里混淆了两个概念:
- 在代码中硬编码 Sid 和 Auth Token 值
- 从执行环境中提取您的 Sid 和 Auth Token 值。
您只想做其中一个,而不是两者。最直接的方法是只做 #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 以将您的凭据保密。
,阅读您的错误!
您对 os.eviron[your-key]
的调用出错了 raise KeyError(key) from None KeyError
。使用 google 搜索时,当您尝试访问 os.eviron
中字典中缺少的键时会发生此错误。您是否在 env
变量中设置了键?如果您在代码中索引的键是您的 account_sid 和 auth_token,那么您肯定做错了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。