使用curl认证Gsuite用户的URL是什么?

时间:2018-11-15 23:38:48

标签: google-admin-sdk gsuite google-javascript-api google-php-sdk

我想对Gsuite用户进行身份验证,以使他们能够从我公司的应用程序中创建群组,我必须使用CURL进行操作,我应该向哪个URL发送发布请求?

例如,如果我想将用户登录到Google plus,我会点击该网址

CURLOPT_URL => "https://www.googleapis.com/plus/v1/people/me?access_token=" . $access_token,

Gsuite的网址是什么?

1 个答案:

答案 0 :(得分:1)

如果您的目标是检索有关G Suite中用户的信息:

CURLOPT_URL => "https://www.googleapis.com/admin/directory/v1/users/john@example.com?access_token=" . $access_token;

注意:有关如何执行委派,请查阅Directory API。这是必需的。如果未启用Domain-wide Delegation,则普通访问令牌将无法工作。

您的凭据(访问令牌)将需要正确的范围:

https://www.googleapis.com/auth/admin.directory.group
https://www.googleapis.com/auth/admin.directory.user

您的凭据将需要正确的委派。

Python示例:

SCOPES = [
        "https://www.googleapis.com/auth/admin.directory.group",
        "https://www.googleapis.com/auth/admin.directory.user"
        ]

key_file = 'google-directory-api-service-account.json'

SERVICE_ACCOUNT_EMAIL = 'directory@development-123456.iam.gserviceaccount.com'
ADMIN_EMAIL = 'gsuite-admin@example.com'

credentials = service_account.Credentials.from_service_account_file(
                        key_file,
                        scopes = SCOPES)

credentials = credentials.with_subject(ADMIN_EMAIL)

Domain-wide Delegation

有关设置G Suite访问权限时遇到的常见错误,请参见此答案的底部。

如果您的目标是检索存储在Google OAuth 2.0令牌中的信息:

这些网址需要Google OAuth 2.0访问令牌。 alt=json指定返回的JSON。

可以在命令提示符下测试的示例:

curl -k "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ACCESS_TOKEN"

curl -k "https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=ACCESS_TOKEN"

还有v3端点:

curl -k "https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=ACCESS_TOKEN"

设置对G Suite的API访问权限时的常见问题:

  • 未配置访问。之前尚未在项目123456789012中使用过Admin Directory API,或者已将其禁用。

转到Google Cloud Console。为Admin SDK启用API。

  • 未经授权访问此资源/ api。

您没有正确设置域范围的委托。

  • 未授权客户端使用此方法检索访问令牌

您尝试在现有服务帐户上设置域范围的委派。您需要创建一个未分配任何IAM角色的新服务帐户。