GAE(Python)云资源管理器 - 权限被拒绝

时间:2016-11-17 23:29:28

标签: python rest google-app-engine

我正在尝试使用appengine urlfetch创建一个项目,但我得到403"来电者没有权限"错误。我在生产中运行此代码,应该自动获得许可。

以下是代码:

from google.appengine.api import app_identity
from google.appengine.api import urlfetch
import json

project_data = {
    'projectId': 'test-project-84873',
    'name': 'TEST PROJECT'
}

auth_token, _ = app_identity.get_access_token('https://www.googleapis.com/auth/cloud-platform')
response = urlfetch.fetch(
    'https://cloudresourcemanager.googleapis.com/v1/projects',
    payload = json.dumps(project_data),
    method = urlfetch.POST,
    headers = {
        'Authorization': 'Bearer {}'.format(auth_token),
        'Content-Type': 'application/json'
    }
)

我的API已启用,并且我能够使用本页底部的API资源管理器成功创建项目https://cloud.google.com/resource-manager/reference/rest/v1/projects/create

如果我使用GET而不是POST运行相同的代码,它会成功返回当前项目信息。

由于

修改

奇怪的是,这段代码在我的本地开发服务器上完美运行,只是没有在生产中...... ???

编辑2

我尝试使用我在本页底部附近找到的Python客户端库:https://cloud.google.com/docs/authentication

代码:

from oauth2client.client import GoogleCredentials
from apiclient.discovery import build

credentials = GoogleCredentials.get_application_default()
service = build('cloudresourcemanager', 'v1', credentials=credentials)

project_data = {
    'projectId': 'project-test-12345',
    'name': 'YAY NEW PROJECT'
}
projects = service.projects().create(body=project_data).execute()

我得到了相同的结果。它在本地工作,但不在生产中:(

0 个答案:

没有答案