Skip to main content
 首页 » 编程设计

python之Django Sendgrid 身份验证错误

2024年10月25日2252php

我正在尝试通过 SendGrid API 对自己进行身份验证,以便使用模板引擎 API(为 A/B 测试创建它们),但无论如何,我都会收到 401 未经授权的错误。有人可以帮忙吗?难道我做错了什么 ?这是我的代码:

@receiver(models.signals.post_save, sender=Template) 
def create_sendgrid_template(sender, instance, created, *args, **kwargs): 
    url = 'https://api.sendgrid.com/v3/templates' 
    sendgrid_data = { 
        "name": "example_template", 
    } 
    if created: 
        request = urllib2.Request(url) 
        base64string = base64.encodestring( 
            '%s:%s' % ( 
                SENDGRID_API_USER, 
                SENDGRID_API_PASSWORD) 
            ).replace('\n', '') 
        request.add_header("Authorization", "Basic %s" % base64string) 
        result = urllib2.urlopen(request) 

请您参考如下方法:

尝试对您的数据进行编码并将其添加到请求中——我怀疑您正在获取而不是发布。查看urllib howto .还值得验证您的凭据是否正确。

@receiver(models.signals.post_save, sender=Template) 
def create_sendgrid_template(sender, instance, created, *args, **kwargs): 
url = 'https://api.sendgrid.com/v3/templates' 
sendgrid_data = { 
    "name": "example_template", 
} 
data = json.dumps(sendgrid_data) 
 
if created: 
    request = urllib2.Request(url, data) 
    base64string = base64.encodestring( 
        '%s:%s' % ( 
            SENDGRID_API_USER, 
            SENDGRID_API_PASSWORD) 
        ).replace('\n', '') 
    request.add_header("Authorization", "Basic %s" % base64string) 
    request.add_header('Content-type', 'application/json')         
    result = urllib2.urlopen(request) 

如果您不想推出自己的解决方案,可以使用 sendwithus 等服务和 mailjet对电子邮件进行 A/B 测试。