我可以从web app获取API密钥。但是,根据SendGrid文档,我只能访问整个密钥的一小部分。
如果您看到以下API密钥示例:
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
子字符串"ngeVfQFYQlKU0ufo8x5d1A"
是API密钥。
这些内容的其余部分是什么?它们是如何生成整个/完整字符串的?
*已解决*
生成API KEY并仅向您显示一次。所以一定要复制并保存在某个地方。之后,只显示子集键。
答案 0 :(得分:5)
生成API KEY并仅向您显示一次。所以一定要复制并保存在某个地方。之后,只显示子集键。
答案 1 :(得分:2)
子字符串
"ngeVfQFYQlKU0ufo8x5d1A"
是API密钥。
您所指的子字符串不是 API密钥,而是API密钥ID。
这些东西的其余部分是什么,它们是如何生成整个/完整字符串的?
完整的字符串是整个API密钥,分为3个部分,并用点分隔。所以API KEY = SG.ID.VALUE
:
SG.aaaa.bbbb
,则api_key_id
将是aaaa
。如何获取完整的SendGrid API密钥?
只有两种方法可以这样做:通过 SendGrid UI或API 。两者都在创建时访问,并且您只能读取一次键值。
以下是使用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}`);
});