繁体   English   中英

通过API 3.0 SendGrid邀请队友

[英]SendGrid Invite Teammate via API 3.0

我正在尝试通过API邀请用户加入我的SendGrid订阅。 为此,我创建了FULL ACCESS键。

如果尝试使用TeamMates api( https://sendgrid.com/docs/API_Reference/Web_API_v3/teammates.html )创建用户,则会收到“禁止”响应。

如果我向系统询问我的密钥:

GET https://api.sendgrid.com/v3/api_keys/[KEY_ID]

我得到一个权限列表:

{
"api_key_id": "__ID__",
"name": "__NAME__",
"scopes": [
    "alerts.create",
    "alerts.read",
    "alerts.update",
    "alerts.delete",
    "asm.groups.create",
    "asm.groups.read",
    "asm.groups.update",
    "asm.groups.delete",
    "ips.pools.ips.read",
    "mail.send",
    "mail_settings.bcc.read",
    "mail_settings.bcc.update",
    "mail_settings.address_whitelist.read",
    "mail_settings.address_whitelist.update",
    "mail_settings.footer.read",
    "mail_settings.footer.update",
    "mail_settings.forward_spam.read",
    "mail_settings.forward_spam.update",
    "mail_settings.plain_content.read",
    "mail_settings.plain_content.update",
    "mail_settings.spam_check.read",
    "mail_settings.spam_check.update",
    "mail_settings.bounce_purge.read",
    "mail_settings.bounce_purge.update",
    "mail_settings.forward_bounce.read",
    "mail_settings.forward_bounce.update",
    "partner_settings.new_relic.read",
    "partner_settings.new_relic.update",
    "partner_settings.sendwithus.read",
    "partner_settings.sendwithus.update",
    "tracking_settings.click.read",
    "tracking_settings.click.update",
    "tracking_settings.subscription.read",
    "tracking_settings.subscription.update",
    "tracking_settings.open.read",
    "tracking_settings.open.update",
    "tracking_settings.google_analytics.read",
    "tracking_settings.google_analytics.update",
    "user.webhooks.event.settings.read",
    "user.webhooks.event.settings.update",
    "user.webhooks.event.test.create",
    "user.webhooks.event.test.read",
    "user.webhooks.event.test.update",
    "user.webhooks.parse.settings.create",
    "user.webhooks.parse.settings.read",
    "user.webhooks.parse.settings.update",
    "user.webhooks.parse.settings.delete",
    "stats.read",
    "stats.global.read",
    "categories.stats.read",
    "categories.stats.sums.read",
    "devices.stats.read",
    "clients.stats.read",
    "clients.phone.stats.read",
    "clients.tablet.stats.read",
    "clients.webmail.stats.read",
    "clients.desktop.stats.read",
    "geo.stats.read",
    "mailbox_providers.stats.read",
    "browsers.stats.read",
    "user.webhooks.parse.stats.read",
    "templates.create",
    "templates.read",
    "templates.update",
    "templates.delete",
    "templates.versions.create",
    "templates.versions.read",
    "templates.versions.update",
    "templates.versions.delete",
    "templates.versions.activate.create",
    "user.timezone.read",
    "user.timezone.update",
    "user.settings.enforced_tls.read",
    "user.settings.enforced_tls.update",
    "api_keys.create",
    "api_keys.read",
    "api_keys.update",
    "api_keys.delete",
    "email_activity.read",
    "categories.create",
    "categories.read",
    "categories.update",
    "categories.delete",
    "mail_settings.template.read",
    "mail_settings.template.update",
    "marketing_campaigns.create",
    "marketing_campaigns.read",
    "marketing_campaigns.update",
    "marketing_campaigns.delete",
    "mail.batch.create",
    "mail.batch.read",
    "mail.batch.update",
    "mail.batch.delete",
    "user.scheduled_sends.create",
    "user.scheduled_sends.read",
    "user.scheduled_sends.update",
    "user.scheduled_sends.delete",
    "access_settings.whitelist.create",
    "access_settings.whitelist.read",
    "access_settings.whitelist.update",
    "access_settings.whitelist.delete",
    "access_settings.activity.read",
    "whitelabel.create",
    "whitelabel.read",
    "whitelabel.update",
    "whitelabel.delete",
    "suppression.create",
    "suppression.read",
    "suppression.update",
    "suppression.delete"
]

}

但是没有“用户相关”权限。 因此,我试图像以下那样“更改”我的Key权限:

{
"name": "__NAME__",
"scopes": [
    "alerts.create",
    "alerts.read",
    "alerts.update",
    "alerts.delete",
    "asm.groups.create",
    "asm.groups.read",
    "asm.groups.update",
    "asm.groups.delete",
    "ips.pools.ips.read",
    "mail.send",
    "mail_settings.bcc.read",
    "mail_settings.bcc.update",
    "mail_settings.address_whitelist.read",
    "mail_settings.address_whitelist.update",
    "mail_settings.footer.read",
    "mail_settings.footer.update",
    "mail_settings.forward_spam.read",
    "mail_settings.forward_spam.update",
    "mail_settings.plain_content.read",
    "mail_settings.plain_content.update",
    "mail_settings.spam_check.read",
    "mail_settings.spam_check.update",
    "mail_settings.bounce_purge.read",
    "mail_settings.bounce_purge.update",
    "mail_settings.forward_bounce.read",
    "mail_settings.forward_bounce.update",
    "partner_settings.new_relic.read",
    "partner_settings.new_relic.update",
    "partner_settings.sendwithus.read",
    "partner_settings.sendwithus.update",
    "tracking_settings.click.read",
    "tracking_settings.click.update",
    "tracking_settings.subscription.read",
    "tracking_settings.subscription.update",
    "tracking_settings.open.read",
    "tracking_settings.open.update",
    "tracking_settings.google_analytics.read",
    "tracking_settings.google_analytics.update",
    "user.webhooks.event.settings.read",
    "user.webhooks.event.settings.update",
    "user.webhooks.event.test.create",
    "user.webhooks.event.test.read",
    "user.webhooks.event.test.update",
    "user.webhooks.parse.settings.create",
    "user.webhooks.parse.settings.read",
    "user.webhooks.parse.settings.update",
    "user.webhooks.parse.settings.delete",
    "stats.read",
    "stats.global.read",
    "categories.stats.read",
    "categories.stats.sums.read",
    "devices.stats.read",
    "clients.stats.read",
    "clients.phone.stats.read",
    "clients.tablet.stats.read",
    "clients.webmail.stats.read",
    "clients.desktop.stats.read",
    "geo.stats.read",
    "mailbox_providers.stats.read",
    "browsers.stats.read",
    "user.webhooks.parse.stats.read",
    "templates.create",
    "templates.read",
    "templates.update",
    "templates.delete",
    "templates.versions.create",
    "templates.versions.read",
    "templates.versions.update",
    "templates.versions.delete",
    "templates.versions.activate.create",
    "user.timezone.read",
    "user.timezone.update",
    "user.settings.enforced_tls.read",
    "user.settings.enforced_tls.update",
    "api_keys.create",
    "api_keys.read",
    "api_keys.update",
    "api_keys.delete",
    "email_activity.read",
    "categories.create",
    "categories.read",
    "categories.update",
    "categories.delete",
    "mail_settings.template.read",
    "mail_settings.template.update",
    "marketing_campaigns.create",
    "marketing_campaigns.read",
    "marketing_campaigns.update",
    "marketing_campaigns.delete",
    "mail.batch.create",
    "mail.batch.read",
    "mail.batch.update",
    "mail.batch.delete",
    "user.scheduled_sends.create",
    "user.scheduled_sends.read",
    "user.scheduled_sends.update",
    "user.scheduled_sends.delete",
    "access_settings.whitelist.create",
    "access_settings.whitelist.read",
    "access_settings.whitelist.update",
    "access_settings.whitelist.delete",
    "access_settings.activity.read",
    "whitelabel.create",
    "whitelabel.read",
    "whitelabel.update",
    "whitelabel.delete",
    "suppression.create",
    "suppression.read",
    "suppression.update",
    "suppression.delete",
    "user.account.read",
      "user.credits.read",
      "user.email.create",
      "user.email.delete",
      "user.email.read",
      "user.email.update"
]
}

但是我没有运气:

{
"errors": [
    {
        "field": null,
        "message": "unauthorized scopes: [user.account.read user.credits.read user.email.create user.email.delete user.email.read user.email.update]"
    }
]
}

有什么方法可以使用API​​ KEY邀请某些用户使用SendGrid吗? 我做错了什么或与我的计划有关吗?

谢谢

响应在文档中,总结如下:

您必须使用用户名+密码创建superpower API KEY,然后使用它们。

来自: https : //sendgrid.com/docs/Classroom/Basics/API/api_key_permissions.html

“提出上述API请求之前要了解的重要事项:

  1. 您将需要使用父帐户的用户名和密码来验证上述请求,因为您的API密钥将没有所需的API密钥权限。 使用用户名和密码进行身份验证有两种方法:

您可以通过base64对用户名和密码进行编码(例如:username:password)并将其作为Basic添加到您的Authorization标头中,从而向API调用中添加基本授权。 我们在这里对此进行详细介绍。 或者,您可以使用诸如Postman或Paw之类的其他客户端,在其中可以选择使用基本身份验证(您的SendGrid父帐户用户名和密码)进行身份验证,然后更新请求以将编码的父帐户凭据添加到标头中。 我们仅建议您在更新API密钥权限时使用您的用户名和密码进行身份验证。 所有其他API调用均应通过您的API密钥进行身份验证。

  1. 确保在发出请求时,添加希望API密钥具有的所有范围。 例如,如果您发出请求并仅将“ categories.read”列出为作用域,那么您将拥有一个仅包含“ categories.read”作用域的键。 除了要添加的新作用域之外,请确保列出从获取现有键请求中获得的所有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM