2016-09-21 4 views
0

Я пытаюсь найти способ динамического создания проекта в Google App Engine, используя Go this example. Однако, документация не очень понятно (по крайней мере для меня) в том, как приступить к аутентификации пользователя и пример Go идет так далеко, как говорят:Создайте проект Google App Engine Programatically в Go

// TODO: Fill required fields. 

я также имел взглянуть на Go Client Library Documentation, который еще более смущало меня.

Кто-нибудь использовал этот API раньше или нашел способ программно создать проект в App Engine?

+1

Является ли проблема с аутентификацией или заполнением обязательных полей? Если это второй, то он должен быть более или менее независим от клиентской библиотеки, просто следуйте формату, указанному в документации по вызовам остальных API. Прежде чем попробовать его в клиентской библиотеке, я бы рекомендовал попробовать этот запрос в API-интерфейсе API: https://developers.google.com/apis-explorer/#p/cloudresourcemanager/v1beta1/cloudresourcemanager.projects.create – dyeray

+0

У меня есть протестирован через API-интерфейс раньше, и он отлично работает. Я просто не знаю, как реализовать эту проверку подлинности в своем приложении. Это немного, чего я не понимаю. –

ответ

1

Когда вы инициализируете API, вызывая cloudresourcemanager.New (hc), вы передаете http-клиент, который в этом примере аутентифицируется с использованием учетных данных по умолчанию из системы. Эти учетные данные поступают из учетной записи службы по умолчанию для App Engine или Compute Engine (не уверен в отношении второго), в зависимости от среды, в которой вы находитесь. Если вы находитесь за пределами Google Cloud, вы можете следовать инструкциям на примере:

// 2. This sample uses Application Default Credentials for authentication. 
// If not already done, install the gcloud CLI from 
// https://cloud.google.com/sdk/ and run 
// 'gcloud beta auth application-default login' 

Если вы сделаете это, учетные данные по умолчанию будут взяты у пользователя, которого вы использовали для входа в команду gcloud beta auth application-default login. Другая возможность - изменить код для генерации учетных данных, вызвав JWTConfigFromJson 1, который будет явно загружать ваши учетные данные из json-файла. Здесь 2 вы можете увидеть пример инициализации http-клиента с помощью этого метода.

+0

Ничего из вышеперечисленного не будет работать. Я установил учетную запись приложения по умолчанию и до сих пор получаю ошибку: Ошибка контекста googleapi: Ошибка 403: У вызывающего абонента нет разрешения, запрещено. Второй метод не может работать, потому что учетные данные установлены на уровне проекта, так как проект именно то, что я пытаюсь создать, я могу заранее создать учетные данные. –

+0

Я могу запустить создание на v1 API в API-интерфейсе Explorer, но не v1beta1. Метод create отмечен как альфа в новой версии. Может быть, он вообще недоступен? – dyeray

+0

Да. Теперь я сосредоточен на V1 api. Я связался с командой поддержки Cloud Platform, а v1 - это рекомендуемый метод. Проблема в том, что я не могу заставить v1 работать за пределами API-браузера из-за некоторой проблемы с проверкой подлинности. Я задал новый вопрос по этой проблеме. http://stackoverflow.com/questions/39800765/create-google-cloud-project-with-cloud-resource-manager-api –

Смежные вопросы