Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 是否为Google服务帐户电子邮件创建别名?_Google Sheets_Google Authentication_Google Cloud Iam - Fatal编程技术网

Google sheets 是否为Google服务帐户电子邮件创建别名?

Google sheets 是否为Google服务帐户电子邮件创建别名?,google-sheets,google-authentication,google-cloud-iam,Google Sheets,Google Authentication,Google Cloud Iam,我与我的Google服务帐户电子邮件共享了一份Google工作表,它看起来像: myappname-service@myappname-266229.iam.gserviceaccount.com 这允许我的应用程序访问该谷歌表 我希望能够通过自定义电子邮件地址(例如。google@myappname.com)别名为丑陋的自动生成服务帐户电子邮件(myappname-service@myappname-266229.iam.gserviceaccount.com) 我怎么能这样做呢 编辑: 用于

我与我的Google服务帐户电子邮件共享了一份Google工作表,它看起来像:

myappname-service@myappname-266229.iam.gserviceaccount.com

这允许我的应用程序访问该谷歌表

我希望能够通过自定义电子邮件地址(例如。google@myappname.com)别名为丑陋的自动生成服务帐户电子邮件(
myappname-service@myappname-266229.iam.gserviceaccount.com

我怎么能这样做呢

编辑:

用于与Google API交互的代码示例

来自google\u auth\u httplib2导入授权dhttp
从google.oauth2导入服务_帐户
进口pygsheets
def_get_gc():
范围=['https://www.googleapis.com/auth/spreadsheets']
凭据=服务\u帐户.credentials.from\u服务\u帐户\u文件(
settings.GOOGLE\u SERVICE\u AUTH\u文件,
范围=范围,
)
http=AuthorizedHttp(凭据,http=http)
logger.info('已创建GC凭据,正在返回…')
返回pygsheets.authorize(自定义凭据=凭据,http=http)
def do_something(url):
gc=\u get\u gc()
电子表格=gc.按url(url)打开
Issue–服务帐户不能有别名: 与常规帐户不同,服务帐户不能有别名。他们的电子邮件地址由以下内容定义:

  • 对应项目的名称
  • 服务帐户的名称
您不能给它附加别名

解决方法–模拟常规帐户: 如果您希望避免使用自动生成的服务帐户电子邮件地址共享Google工作表,但希望继续使用服务帐户与API进行交互,那么最好的选择是与具有可接受电子邮件地址的常规帐户共享工作表,并在与API交互时使用服务帐户模拟此常规帐户

1.授权域范围的权限: 服务帐户最有用的一点是,您可以授予它模拟域中任何用户并代表其访问数据的能力。这称为域范围的委派,可通过以下方式为服务帐户激活该委派:

重要提示:您需要是G套件域的管理员,才能授予域范围的权限

2.模仿: 此时,您的服务帐户可以模拟帐户中的任何用户。要实际模拟帐户,只需指定在生成凭据时要模拟的帐户

在您的特定情况下,当从_service_account_file调用
时,您需要提供参数
subject
,您可以在以下的域范围委派部分看到:

credentials=service\u account.credentials.from\u service\u account\u文件(
settings.GOOGLE\u SERVICE\u AUTH\u文件,
范围=范围,
subject=“你的-account@your-domain.com“
)
参考:

请按照中的建议添加您的搜索/研究工作的简要说明。在网上根本没有这方面的信息,因此问题中缺少这方面的信息。我认为您应该研究一下共享文件在Google Drive、Google服务帐户、Google Group和G套件电子邮件别名上的工作方式。此服务帐户是使用G套件帐户还是Google公用帐户(通常是gmail.com电子邮件地址)创建的?只有普通帐户可以有别名,而不是服务帐户。创建服务帐户时,您可以设置在
@
之前的内容,但域(在
@
之后的内容)取决于您的应用程序名,您不能为此创建别名。如果你提供更多关于你的情况的信息,也许可以找到解决办法?你为什么使用服务帐户?@Rubén这是一个G套件帐户。看起来我错了,实际上我没有“G套件”帐户。所以当我尝试在1内完成这一步时。“从您的G套件域的管理控制台,转到主菜单…”,我收到了这个错误消息。“admin.google.com仅用于G套件帐户。常规Gmail帐户不能用于登录admin.google.com”关于如何继续的想法?建议我需要一个G-Suite帐户来完成此操作。如果我需要这样做,那还不是世界末日。@Richard当然,你需要一个G套件帐户(实际上,你需要是一个G套件域的管理员)才能工作!域范围的委派意味着服务帐户可以模拟您的G套件域中的任何用户。我可以通过。1.正在创建GSuite帐户。2.使该账户成为“所有者”;在我现有的服务帐户上。