0

尝试使用 Provisioning API 调用“创建用户帐户”操作时遇到 HTTP 403 错误(通过 POST @ https://apps-apis.google.com/a/feeds/domain/user/2.0)。收到的响应是 403 错误:

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

该 API 一直工作到上周晚些时候。我的代码库中没有更改任何代码。API 关闭了吗?API 文档确实说 API 已被弃用。但 API 仍应按照其弃用政策运行。

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

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

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

4

1 回答 1

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);
于 2014-05-21T19:04:57.133 回答