如何获取完整的SendGrid API密钥?

时间:2017-02-03 18:38:19

标签: sendgrid sendgrid-api-v3

我可以从web app获取API密钥。但是,根据SendGrid文档,我只能访问整个密钥的一小部分。

如果您看到以下API密钥示例:

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

子字符串"ngeVfQFYQlKU0ufo8x5d1A"是API密钥。

这些内容的其余部分是什么?它们是如何生成整个/完整字符串的?

参考:SendGrid Docs - API Keys

*已解决*

生成API KEY并仅向您显示一次。所以一定要复制并保存在某个地方。之后,只显示子集键。

2 个答案:

答案 0 :(得分:5)

生成API KEY并仅向您显示一次。所以一定要复制并保存在某个地方。之后,只显示子集键。

答案 1 :(得分:2)

  

子字符串"ngeVfQFYQlKU0ufo8x5d1A"是API密钥。

您所指的子字符串不是 API密钥,而是API密钥ID。

  

这些东西的其余部分是什么,它们是如何生成整个/完整字符串的?

完整的字符串是整个API密钥,分为3个部分,并用分隔。所以API KEY = SG.ID.VALUE

  • SG :在每个SG API密钥的开头附加一个固定值,我假设SG代表“ SendGrid”。
  • ID :这是在通过API编辑和删除密钥时用于引用该密钥的密钥ID,它不是实际的密钥。因此,如果这是您的API密钥:SG.aaaa.bbbb,则api_key_id将是aaaa
  • VALUE :这是您只能读取一次的键值
  

如何获取完整的SendGrid API密钥?

只有两种方法可以这样做:通过 SendGrid UI或API 。两者都在创建时访问,并且您只能读取一次键值

  • API :为了从API创建和读取密钥,您需要具有对API的优先访问权,这意味着您需要使用SendGrid UI创建初始API密钥。之后,您只需POST to /api_keys

以下是使用official SendGrid web API v3 client via Node.js的示例:

import sgClient from '@sendgrid/client';

/** Your initial API key from the SendGrid UI */
sgClient.setApiKey(process.env.SENDGRID_API_KEY);

let req = {
  method: 'POST',
  url: '/v3/api_keys',
  body: { name: 'NEW_SG_KEY' }
};

sgClient.request(req)
  .then( ([res, body]) => {
    console.log(`key: ${body.api_key}`);
    console.log(`ID:  ${body.api_key_id}`);
  })
  .catch( err => {
    console.log(`Unable to create new API key: ${err.code} ${err.message}`);
  });