【问题标题】:TWILIO API ERROR Credentials are required to create a TwilioClient djangoTWILIO API ERROR 创建 TwilioClient django 需要凭据
【发布时间】:2020-04-05 12:33:47
【问题描述】:

我正在尝试将 TWILIO API 包含到我的项目中。它应该发送短信。我已完成教程,但随后出现错误需要凭据才能创建 TwilioClient。我在 .env 文件中有凭据,然后我尝试将它们导入设置,然后将此凭据从设置获取到视图。

这是我出错的时候。

.env

TWILIO_ACCOUNT_SID= 'xxxxxxxxxxxxxxxxxxxxxx'
TWILIO_AUTH_TOKEN= 'xxxxxxxxxxxxxxxxxxxxxxx'
TWILIO_NUMBER= 'xxxxxxxxxxxxxxxxxx'

settings.py

import os

    TWILIO_ACCOUNT_SID = os.getenv('TWILIO_ACCOUNT_SID')
    TWILIO_AUTH_TOKEN = os.getenv('TWILIO_AUTH_TOKEN')
    TWILIO_NUMBER = os.getenv('TWILIO_NUMBER')
    SMS_BROADCAST_TO_NUMBERS = [
        '+111111111', 
    ]   

观看次数

from django.conf import settings                                                                                                                                                       
from django.http import HttpResponse
from twilio.rest import Client


def broadcast_sms(request):
    message_to_broadcast = ("Have you played the incredible TwilioQuest "
                                                "yet? Grab it here: https://www.twilio.com/quest")
    client = Client(settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN)
    for recipient in settings.SMS_BROADCAST_TO_NUMBERS:
        if recipient:
            client.messages.create(to=recipient,
                                   from_=settings.TWILIO_NUMBER,
                                   body=message_to_broadcast)
    return HttpResponse("messages sent!", 200)

这是代码工作的时候,但我想从设置中导入它..

# def sms(request):
#     TWILIO_ACCOUNT_SID = "xxxxxxxxxxxxxxxxxxxxxxx"
#     TWILIO_AUTH_TOKEN = "xxxxxxxxxxxxxxxxx"
#     TWILIO_NUMBER = "xxxxxxxxxxxxx"
#     message_to_broadcast = ("Have you played the incredible TwilioQuest "
#                                                 "yet? Grab it here: https://www.twilio.com/quest")
#
#     client = Client(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)
#     for recipient in settings.SMS_BROADCAST_TO_NUMBERS:
#         if recipient:
#             client.messages.create(to=+xxxxxxxxx,
#                                    from_=+xxxxxxxxxx,
#                                    body=message_to_broadcast)
#     return HttpResponse("messages sent!", 200)

知道如何解决这个问题吗?

【问题讨论】:

    标签: python django api twilio


    【解决方案1】:

    所以您使用的是 .env 文件而不是设置操作系统的环境变量?如果有的话,下面还有文章,指向https://github.com/theskumar/python-dotenv

    How To Set Environment Variables

    【讨论】:

    • 嗨,我已经像文章中那样设置了环境变量,但我仍然遇到同样的错误。我是否也应该更改设置中的某些内容?
    • 运行文章中的 echo 命令时,看到值了吗?
    • 是的,我已经检查过了,这会返回值。我想知道这是否是我唯一应该做的事情?因为我在设置文件中仍然有这个 os.getenv。也许我应该以某种方式将此值导入 django?
    • 在框架之外尝试一个小的 Python 程序,看看它是否按预期工作,这样你就可以缩小问题的范围。
    • 最后帮助安装了env库,但是self django无法直接从电脑读取环境值。
    【解决方案2】:

    换行

    client = Client(settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN)
    

    client = Client("y3234hgfds","etgwegpi34y35")
    

    其中y3234hgfds 是您设置中的TWILIO_ACCOUNT_SIDetgwegpi34y35TWILIO_AUTH_TOKEN

    【讨论】:

      猜你喜欢
      • 2020-09-16
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      • 2014-12-12
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      相关资源
      最近更新 更多