当前位置: 首页 > 知识库问答 >
问题:

检索所有用户谷歌目录管理SDK

司寇星海
2023-03-14

我想检索所有的用户从一个给定的领域与谷歌目录API(管理SDK)与PHP。

我已经阅读了所有相关的文档,但我找不到任何有效的解决方案。

我需要运行的GET请求是:

获取https://www.googleapis.com/admin/directory/v1/users?domain=example.com&maxresults=2

我试着用Curl运行它:

$curl_handle=curl_init();
                                    $header = array();
                                    $header[] = 'Content-length: 0';
                                    $header[] = 'Content-type: application/json';
                                    $header[] = 'client_id=xxx';
                                    $header[] = 'client_secret=yyy&token=zzz'  ;
                                    curl_setopt($curl_handle, CURLOPT_HTTPHEADER,$header);
                                    curl_setopt($curl_handle, CURLOPT_URL,'https://www.googleapis.com/admin/directory/v1/users?domain=westwing.fr&maxResults=2');
                                    curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
                                    curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
                                    curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name');
                                    $query = curl_exec($curl_handle);
                                    curl_close($curl_handle);
                                    echo $query;

结果如下:

{“错误”:{“错误”:[{“域”:“全局”,“原因”:“必需”,“消息”:“必需登录”,“位置类型”:“标头”,“位置”:“授权”}],“代码”:401,“消息”:“必需登录”}}

我假设有一个认证问题,但我不能解决它。请注意,我已经使用google-api-php-client来获取令牌和google登录。

谢了。

我修改了请求:

$thetok=array();
                                 $thetok= json_decode($_SESSION["token"] ,true);
                                 $thetoken =  $thetok["access_token"] ;
                                 //print_r($thetok);



                                    $ch = curl_init();
                                    curl_setopt($ch, CURLOPT_URL, 'https://www.googleapis.com/admin/directory/v1/users?domain=example.com&maxResults=2&viewType=domain_public');
                                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                                    $headers[0] = 'Authorization: Bearer ' . $thetoken;
                                    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
                                    $response = curl_exec($ch);
                                    curl_close($ch);
                                    print_r($response);
                                    print_r($headers);

但答案仍然是:

我再次修改了它,现在我有一个403错误(权限不足):

    $ch = curl_init();
                                curl_setopt($ch, CURLOPT_URL, 'https://www.googleapis.com/admin/directory/v1/users?domain=example.com&maxResults=2&viewType=domain_public&access_token='.$thetoken.'');
                                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

                                curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
                                $response = curl_exec($ch);
                                curl_close($ch);
                                print_r($response);
                                print_r($headers);

共有1个答案

松英喆
2023-03-14

只需在Authorization标头中传递OAuth2.0访问令牌,如下所示:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.googleapis.com/admin/directory/v1/users?domain=example.com&maxResults=2&viewType=domain_public');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers[0] = 'Authorization: Bearer ' . $access_token;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
print_r($response);

不再需要client_id和/或client_secret;它们以前用于获取access_token

 类似资料:
  • 使用超级管理权限,我不能使用获得所有权(不允许操作)

  • 我目前在我的网站上部署了Google Tag Manager,在我的容器中只有一个标准的Google Analytics标签,可以在每个页面上启动。我想捕捉我的网站访问者在我们的网站上搜索产品时使用的术语。回到Google Analytics,我启用了站点搜索,并在包含访问者站点搜索词的URL中提供了查询参数。然而,没有任何数据能够返回到Google Analytics中的站点搜索报告中,因此我想

  • 所以在展示我的代码之前,让我解释一下我采取了哪些步骤来“正确”设置服务号环境。 > 然后我试图执行这样的事情: 或 这个代码会导致, 我做错了什么?在过去的两天里,我一直在寻找解决方案,并尝试了很多方法。我还不确定的解决方案之一是ntp同步(比如如何将服务器时间精确同步到ntp)。 任何建议都会很有帮助,谢谢! 更新:我还确保激活了Admin Directory SDK,并在开发者控制台上启用了域

  • 我正在尝试学习如何在一个新网站上整合谷歌分析和定制事件跟踪。在研究它之后,我似乎无法理解Google Tag Manager和仅仅编写自定义事件跟踪代码之间的区别和关系。 Google Tag Manager是否只是一种更简单的跟踪信息的方法,而无需编写JS?

  • 我正在阅读网络分析,遇到了GTM和GA。 似乎GA是谷歌提供的一项服务,它生成关于网站流量的报告和统计数据。根据我有限的理解,为了生成这些报告,我们需要在结束时执行某种类型的标记。 在GTM中,我们还需要在我们的网站上添加一些标签。 所以如果两个GA

  • 我正在实施谷歌标签管理器为Android应用程序V4由我的营销团队要求为未来使用,我从来没有在GTM网站,所以我在这方面很天真。 我已经根据官方网站上的说明创建了帐户、容器和标签。我已经将tag manager与google analytics tracking id链接。我已经根据网站上的说明在我的应用程序中编写了代码,并将容器下载到原始文件夹中。 当我运行我的应用程序时,它会在logcat中给