【发布时间】:2019-10-26 06:04:01
【问题描述】:
我正在尝试验证private_key 是否正确,如this SO question 中所述。
Docs about service account private keys are here.
{
"type": "service_account",
"project_id": "[PROJECT-ID]",
"private_key_id": "[KEY-ID]",
"private_key": "-----BEGIN PRIVATE KEY-----\n[PRIVATE-KEY]\n-----END PRIVATE KEY-----\n",
"client_email": "[SERVICE-ACCOUNT-EMAIL]",
"client_id": "[CLIENT-ID]",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/[SERVICE-ACCOUNT-EMAIL]"
}
当使用private_key 时,我是否只获取两者之间的部分
-----BEGIN PRIVATE KEY-----\n
字符串和
\n-----END PRIVATE KEY-----\n
也就是说,示例中显示的[PRIVATE-KEY]?
或者我得到整个字符串,包括上面显示的两个“书挡”字符串?
此外,在[PRIVATE-KEY] 字符串中,\n 子字符串出现了多次。我是删除它们还是保留它们?
【问题讨论】:
-
私钥是
"-----BEGIN PRIVATE KEY-----\n[PRIVATE-KEY]\n-----END PRIVATE KEY-----\n",如 JSON 文件中所示。所以请使用"-----BEGIN PRIVATE KEY-----\n[PRIVATE-KEY]\n-----END PRIVATE KEY-----\n"作为key的var firestore = FirestoreApp.getFirestore(email, key, projectId);。但我认为发布这个问题可能已经尝试过[PRIVATE-KEY]和"-----BEGIN PRIVATE KEY-----\n[PRIVATE-KEY]\n-----END PRIVATE KEY-----\n"。如果是的话,能否解释一下获取JSON文件的方法? -
@Tanaike:是的,我测试了所有可能的选项。我将详细说明并仔细检查我检索 JSON 文件的方法。但与此同时,请注意,在这个 SO 答案中 ...stackoverflow.com/a/55472398... 他们说“您只需从 .json 文件中复制
-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----\n之间的部分。”他们错了吗? -
虽然我不确定线程,但私钥是
"-----BEGIN PRIVATE KEY-----\n[PRIVATE-KEY]\n-----END PRIVATE KEY-----\n",如JSON文件所示。如果[PRIVATE-KEY]用于the library 作为私钥,则会发生错误。当你测试"-----BEGIN PRIVATE KEY-----\n[PRIVATE-KEY]\n-----END PRIVATE KEY-----\n"作为私钥时,出现错误,我认为检索JSON文件的方法可能有问题。 -
我不认为他们错了,因为 FirestoreGoogleAppsScript 最终将密钥传递给 this function,它使用了整个块,包括
-----BEGIN PRIVATE KEY-----样板。 -
如果您对如何使用 Google 服务帐户私钥感到好奇,我用 Python 写了一篇文章来展示使用方法。 jhanley.com/…
标签: google-app-engine google-apps-script google-cloud-platform