Создание учетных записей администраторов для доменов, созданных с помощью Reseller API
Я пытаюсь автоматизировать весь процесс создания учетной записи приложений Google с помощью учетной записи посредника моей компании в Google, без необходимости что-либо вручную включать.
Вот быстрый сценарий того, что я делаю.
- Создать клиента (домен) с помощью API реселлера
- Создать подписку с помощью API реселлера
- Создать учетную запись администратора для проданного домена
У меня проблемы с автоматизацией шага 3.
Есть два разных API, которые могут выполнить этот тест, Provisioning (dericated) и Directory.
Я уже успешно создал учетные записи пользователей с помощью API-интерфейса Каталога, но на этом этапе требуется, чтобы вы включили доступ API для этого домена, и это может сделать только человек вручную - так что это перерыв в потоке автоматизации и не будет работать для того, что я пытаюсь сделать.
Техническая поддержка Google проинструктировала меня использовать API Provisioning, который устарел, поскольку он предположительно позволяет создавать пользователя-администратора без необходимости вручную включать доступ к API для каждого домена. Когда я пытаюсь сделать это, я сталкиваюсь с этой ошибкой:
Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 403 <HTML> <HEAD> <TITLE>You are not authorized to perform operations on the domain mydomain.com</TITLE>
Вот код, который я пытаюсь запустить:
// .....
$customerid = "somedomain.com";
$client = Zend_Gdata_ClientLogin::getHttpClient("mylogin@foo.com", "mypassword",Zend_Gdata_Gapps::AUTH_SERVICE_NAME);
$gdata = new Zend_Gdata_Gapps($client, $customerid);
$gdata->createUser('Admin', 'Firstname', 'Lastname', 'somerandompassword', TRUE);
//......
Когда я проконсультировался со службой технической поддержки Google, мне сказали, что мне нужно включить API обеспечения, следуя той же инструкции, которую я опубликовал ранее (включить доступ API для каждого домена). Я сделал это как на своем домене посредника, так и на домене клиента, который я пытаюсь подготовить (просто для проверки, потому что весь смысл в том, чтобы иметь возможность создать учетную запись администратора, БЕЗ ее включения в домене клиента.) - Но это все же возвращает эту ошибку.
Вот мои настройки - как вы видите, он включен.
В документах Google в разделе "Включение API предоставления" в нем содержатся некоторые инструкции, но они устарели и не отражают разделы, доступные в текущей панели администратора приложений Google.
Я в недоумении. Я что-то упускаю из виду, или это просто невозможно сделать в это время?
Просто для справки, я нашел несколько других людей, задающих аналогичный вопрос, но с меньшими подробностями:
- Google Reseller Customer Admin Создание пользователя Admin SDK How
- Как создать администратора домена домена Служб Google, приобретенного через API посредника
РЕДАКТИРОВАТЬ: Добавлено изображение, показывающее настройки и пример кода.
3 ответа
Попробуйте удалить параметр "ИСТИНА" в createUser, он работает для меня.
$customerid = "sampledomain.com";
$client = Zend_Gdata_ClientLogin::getHttpClient($email, $password, Zend_Gdata_Gapps::AUTH_SERVICE_NAME);
$gdata = new Zend_Gdata_Gapps($client, $customerid);
var_dump($gdata->createUser('trial', 'Firstname', 'Lastname', 'somerandompassword'));
В настройках домена консоли приложения Google -> в настройках пользователя установите флажок "разрешить доступ через API"
В консоли приложения Google -> расширенные инструменты -> управлять доступом клиента OAuth стороннего производителя
Добавьте область действия: https://apps-apis.google.com/a/feeds/user