使用服务帐户从Google API控制台连接到Prediction API

时间:2012-06-06 11:39:50

标签: google-app-engine google-prediction

我第一次尝试使用Google Prediction API。

我只是按照文章https://developers.google.com/appengine/articles/prediction_service_accounts中提供的步骤进行操作。

在执行上述文章中的步骤2.4时,我遇到了一个奇怪的问题。

我已按照以下步骤操作。

1)我在xyz.com域中创建了一个应用程序,我的应用程序的服务帐户名称为“myapp@appspot.gserviceaccount.com”。

2)然后,我转到Google API控制台上的“团队”标签,并尝试将我的应用程序的服务帐户名称添加到我已激活Prediction API和Google Cloud Storage的项目中。

在将serivce帐户添加到项目时,它给出了一个错误说明 “只有域xyz.com中的用户才可以添加到项目中”。 同样类型的消息也显示在“团队”选项卡的底部。 xyz.com是我的应用程序部署的域名。

有没有人可以帮助我理解为什么会出现这种消息? 是否需要将服务帐户添加到Google控制台API项目中的域级管理员设置?

此致 Nirzari

2 个答案:

答案 0 :(得分:3)

目前,如果您使用自己的Apps帐户创建了一个项目,则只能添加该域名的成员。

您需要做的是从xxx@gmail.com帐户(不是您的Apps域帐户)创建新项目。然后,您可以添加@ appspot.gserviceaccount.com和yourself@xyz.com。

我想你甚至可以在你添加了your@xyz.com后删除xxx@gmail.com。如果需要,甚至激活billing@xyz.com的结算,而不是xxx@gmail.com。

答案 1 :(得分:0)

https://developers.google.com/appengine/docs/python/googlestorage/overview

获取

您可以手动修改存储桶的ACL:

授予应用程序访问存储桶的另一种方法是使用gsutil实用程序手动编辑并设置存储桶ACL和默认对象ACL:

  • 获取存储桶的ACL并将其保存到文件中进行编辑:gsutil getacl gs://mybucket > myAcl.txt
  • 将以下条目添加到刚检索到的ACL文件中:
  

<条目>
    < Scope type =“UserByEmail”>
        < EmailAddress的>
           your-application-id@appspot.gserviceaccount.com
        < / EmailAddress的>
    < /范围>
    <权限>
        WRITE
    < /许可>
  < /条目>

  • 如果要向ACL添加多个应用,请重复上述条目 对于每个应用,只更改电子邮件地址以反映每个应用程序 服务名称。
  • 在您的广告资源上设置修改后的ACL:gsutil setacl myAcl.txt gs://mybucket