- 与 Apps Engine 帐户关联的 Google Apps for Business
- Cloud Console -> 注册应用程序 -> {name} -> Web 应用程序 -> OAuth 2.0 ClientID
- Cloud Console -> Admin API(开启)
- Google Apps 控制台 -> 安全 -> API 访问(选中)
- “ ->” -> 3rd 方 OAuth -> API 客户端 ({ClientID}.apps.googleusercontent.com)
- “->”->“-> API 范围(https://www.googleapis.com/auth/admin.directory.user)
这是我到目前为止所拥有的,
require_once 'google/appengine/api/app_identity/AppIdentityService.php';
use \google\appengine\api\app_identity\AppIdentityService;
function setAuthHeader() {
$access_token =AppIdentityService::getAccessToken("https://www.googleapis.com/auth/admin.directory.user");
return [ sprintf("Authorization: OAuth %s", $access_token["access_token"]) ];
}
$get_contacts_url = "https://www.googleapis.com/admin/directory/v1/users?customer=my_customer";
$headers = implode("\n\r", setAuthHeader());
$opts =
array("http" =>
["http" => ["header" => $headers ]]
);
$context = stream_context_create( $opts );
$response = file_get_contents( $get_contacts_url, false, $context );
print_r ($response);
“access_token”通过就好了,但 $response 返回,
{ "error": { "errors": [ { "domain": "global", "reason": "required", "message": "Login Required", "locationType": "header", "location": "Authorization" } ], "code": 401, "message": "Login Required" } }
在页面底部的用户:列表示例中,它们显示“获取”请求,如下所示,
GET https://www.googleapis.com/admin/directory/v1/users?customer=my_customer&key={YOUR_API_KEY}
{YOUR_API_KEY} 是什么?我已经尝试了所有 Cloud Console 和 Google Apps API,但都没有成功。
我完全错了,我应该使用完全不同的方法吗?我已经为此苦苦挣扎了一个多星期,并且希望得到任何回应。谢谢