2017-09-14 158 views
0

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

如果我尝试使用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" 
] 

}

但没有 “与用户相关的” 权限。为此,我试图“改变”像我的主要权限:

{ 
"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邀请?我做错了什么或与我的计划有关?

感谢

回答

0

的反应是在该文档中,总结:

您必须创建与用户名+密码的超级大国API密钥,然后使用它们。

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

“重要事项作出上述API请求之前就知道:

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

Yo你可以通过base64编码你的用户名和密码来为你的API调用添加基本授权,例如:username:password,并将它作为Basic添加到你的授权标题中。我们在这里详细介绍一下。 或者您可以使用邮差或爪子等休息客户端,您可以选择使用基本身份验证(您的SendGrid父帐户用户名和密码)进行身份验证,然后更新请求以将您的父帐户凭证添加到头中。 我们只建议在更新您的API密钥权限时使用您的用户名和密码进行身份验证。所有其他API调用都应通过您的API密钥进行身份验证。

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