Google Provisioning API 403错误

时间:2013-06-17 22:22:16

标签: google-api google-provisioning-api

尝试使用Provisioning API(通过POST @ https://apps-apis.google.com/a/feeds/domain/user/2.0)调用“创建用户帐户”操作时,我收到了HTTP 403错误。收到的回复是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仍应根据其弃用政策工作。

编辑:所以似乎Provisioning API已被Directory API取代。在Directory API先决条件中,它说“

  

注意:API设备操作不支持远程管理   访问Google授权转销商。

对于Provisioning API,这是否意味着相同的事情?这意味着,Google授权经销商无法访问管理权限,例如创建用户的API?

1 个答案:

答案 0 :(得分:0)

我知道这个问题有点过时了,但由于没有回答而我今天花了几个小时试图解决这个问题,似乎我的答案可以帮助将来的某个人。

我的代码存在的问题是:我尝试使用用户的帐户数据(用户名+密码)登录。我已经创建了另一个具有管理权限的帐户来继续更新。

我案例中的解决方案如下:

$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);