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

9

我可以从网页应用中获取API密钥。然而,根据SendGrid文档,我只能访问密钥的一小部分。

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

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

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

剩下的内容是什么,他们如何生成整个/完整字符串?

参考:SendGrid文档 - API密钥


*已解决*

API密钥只生成并显示一次,请确保将其复制并保存在某处。此后,只会显示子集密钥。


1
这并没有解释它如何获得完整的API令牌。 - AlvinfromDiaspar
2个回答

10

API密钥只会生成并显示一次,所以一定要复制并保存在某个地方。之后,只会显示子集密钥。

它作为警告/提醒的一部分在此处的文档中提到。


9
“ngeVfQFYQlKU0ufo8x5d1A”是API密钥ID,而不是API密钥。完整的API密钥由三个部分组成,用“点”分隔,格式为“SG.ID.VALUE”,其中“SG”是固定值,表示SendGrid,“ID”是用于通过API编辑和删除密钥的密钥ID,而“VALUE”则是只允许读取一次的密钥值。”

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

只有两种方法可以做到这一点; 通过SendGrid UI或API。两者都在创建时访问,您只被允许读取密钥值一次

  • API:为了从API中创建和读取密钥,您需要先访问API,这意味着您需要使用SendGrid UI创建初始API密钥。之后,您只需POST到/api_keys即可。

以下是使用官方SendGrid Web API v3客户端通过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}`);
  });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接