与服务帐户电子邮件共享Google工作表
本教程将介绍与服务帐户电子邮件共享Google工作表的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。
问题描述
我编写了一个脚本来连接到Google电子表格,并从中将数据加载到PostgreSQL数据库中。
我已经创建了一个服务帐户并以.json格式为其获取了必要的凭据,问题是当我尝试与我的服务帐户电子邮件共享Google工作表时,我收到一封电子邮件:
传递给以下收件人永久失败:
dataload@geometric-shine-118101.iam.gserviceaccount.com
永久故障技术详情:dns错误:地址解析
来自geometric-shine-118101.iam.gserviceaccount.com.的失败:域名
未找到
该电子邮件与我在.json密钥文件中收到的电子邮件完全相同。
我已经签入了其他帖子,通常应该分享的电子邮件结构如下:
project_name@developer.gserviceaccount.com
但我的不一样,可能跟这个有关吧?
我按照link的说明操作。
这是.json密钥文件的副本:
{
"type": "service_account",
"project_id": "geometric-shine-118101",
"private_key_id": "xxx",
"private_key": "-----BEGIN PRIVATE KEY-----
xxx
-----END PRIVATE KEY-----
",
"client_email": "dataload@geometric-shine-118101.iam.gserviceaccount.com",
"client_id": "117076930343404252458",
"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/dataload%40geometric-shine-118101.iam.gserviceaccount.com"
}
推荐答案
我解决了我的问题:
Google已更新其服务帐户详细信息格式,并更新了与服务帐户共享电子表格的方式,以便可以从Gspend访问这些电子表格。
然后我创建了一个具有新格式的服务帐户:dataload@geometric-shine-118101.iam.gserviceaccount.com,并将Google生成的完全相同的文件设置为供我的应用程序读取的json:
login = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'], scope)
然后在没有通知的情况下将电子表格与我的服务帐户电子邮件(与我刚才提到的JSON文件中的相同)共享
好了关于与服务帐户电子邮件共享Google工作表的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。