You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过G-Suite API获取账号设备活动与安全事件登录历史?

获取Google Workspace账号登录历史的API方案

你提到的网页端「我的账号 -> 登录与安全 -> 设备活动与安全事件」里的登录历史数据,确实可以通过Google Workspace的官方API来获取,对应的是Admin SDK Reports API的登录审计事件模块,下面是具体的实现途径:

1. 对应API资源

你需要使用Admin SDK Reports API中的userLoginEvents资源,这个接口专门用于拉取用户的登录活动记录,完全匹配网页端展示的登录时间、设备信息、IP地址、登录状态等数据——即使没有配置MDM系统也能正常使用。

2. 权限配置

根据你的用户身份不同,需要申请的权限也不一样:

  • 普通Workspace用户:只需要申请https://www.googleapis.com/auth/admin.reports.user.readonly权限,这个权限允许你访问自己的登录历史,不需要域管理员审批,只要自己在授权流程中同意即可。
  • 域管理员:如果需要获取整个域内所有用户的登录记录,可以申请https://www.googleapis.com/auth/admin.reports.audit.readonly权限。

3. 调用示例

REST API 请求示例

你可以直接发送GET请求来获取数据,其中{userKey}替换为me即可指代当前授权的用户:

GET https://admin.googleapis.com/admin/reports/v1/activity/users/me/applications/login

请求返回的JSON数据中,events数组会包含每一条登录记录的详细信息,比如登录时间(id.time)、IP地址(ipAddress)、设备类型(deviceDetails.deviceType)、登录结果(events[].name为login_success或login_failure)等。

客户端库调用(以Python为例)

如果你用Google Client Libraries开发,可以参考以下代码片段:

from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials

# 假设你已经完成了OAuth 2.0授权,获取到了credentials
creds = Credentials.from_authorized_user_file('token.json')
service = build('admin', 'reports_v1', credentials=creds)

# 获取自己的登录历史
results = service.activities().list(userKey='me', applicationName='login').execute()
events = results.get('items', [])

if not events:
    print('No login events found.')
else:
    print('Login events:')
    for event in events:
        print(f"{event['id']['time']} - {event['ipAddress']} - {event['events'][0]['name']}")

4. 前置准备

在调用API之前,你需要完成以下步骤:

  • 登录Google Cloud Console,创建一个新项目。
  • 在项目中启用「Admin SDK」API。
  • 配置OAuth 2.0客户端ID,选择适合你的应用类型(比如桌面应用、Web应用)。
  • 完成OAuth授权流程,获取访问令牌和刷新令牌。

内容的提问来源于stack exchange,提问作者Ori Shalev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:39:14