2013-06-17 2 views
0

Я получаю ошибку HTTP 403 при попытке вызвать операцию «Создать учетную запись пользователя» с помощью API Provisioning (через POST @https://apps-apis.google.com/a/feeds/domain/user/2.0). Полученный ответ является ошибкой 403:Ошибка API Provisioning API 403

"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "forbidden", 
    "message": "Forbidden" 
    } 
    ], 
    "code": 403, 
    "message": "Forbidden" 
} 
} 

API работал до конца прошлой недели. В моей кодовой базе код не был изменен. Является ли API недоступным? The API docs does say the API has been deprecated. Но API должен по-прежнему работать в соответствии со своей политикой устаревания.

EDIT: Таким образом, API Provisioning API был заменен API-интерфейсом Directory. А в Справочник API предпосылках, он говорит:»

Note: The API device operations do not support remote administrative access for Google authorized resellers.

Означает ли это то же самое для Provisioning API? Смысл, административный доступ, такие как API для создания пользователей не могут быть доступны Google авторизованных реселлеров?

ответ

0

Я знаю, что этот вопрос немного устарел, но, поскольку он идет без ответа, и я потратил несколько часов, пытаясь понять это сегодня, кажется, что мой ответ может помочь кому-то в будущем.

Проблема с мой код: я пытался войти в систему с данными учетной записи пользователя (имя пользователя + пароль). Я создал другую учетную запись nt с правами администратора, чтобы перейти к обновлению.

Решение в моем случае выглядит следующим образом:

$domain = 'yourdomain.com'; 
$username = '...';  // the user you're trying to update 
$admin_username = '...'; // administrative credentials 
$admin_password = '...'; 


$config = array(
       'adapter' => 'Zend_Http_Client_Adapter_Proxy', 
       'proxy_host' => 'proxy.example.com', 
       'proxy_port' => '...'); // your proxy port here (ex: 8000) 

$proxiedHttpClient = new Zend_Gdata_HttpClient(
          'https://www.google.com:443', 
          $config); 

$client = Zend_Gdata_ClientLogin::getHttpClient(
       $admin_username, 
       $admin_password, 
       Zend_Gdata_Gapps::AUTH_SERVICE_NAME, 
       $proxiedHttpClient); 

$gdata = new Zend_Gdata_Gapps($client, $domain); 
$userEntry = $gdata->retrieveUser($username); 

// example: changing user's password 
$userEntry->getLogin()->setPassword('Top$EcreT_2014'); 


$gdata->updateUser($username, $userEntry); 
Смежные вопросы