[玩转系统] 使用 Powershell 连接到 Google API
作者:精品下载站 日期:2024-12-14 18:46:03 浏览:14 分类:玩电脑
使用 Powershell 连接到 Google API
我们将使用 OAuth2.0 和 Powershell Invoke-RestMethod cmdlet 连接到 Google API。在开始在 Powershell 中编写脚本之前,我们首先需要获取 ClientId、ClientSecret、AuthCode,最后是访问令牌和刷新令牌。我花了半天时间才弄清楚如何连接到哪里才能得到什么,所以我希望你们(和女孩)能够在 10 分钟内上手并运行。
获取 Google API 访问和刷新令牌
转至 Google 开发者控制台,点击顶部栏上的 API 项目,然后点击 + 来创建新项目。为您的项目命名并单击“创建”。完成后,再次单击“API 项目”,单击全部并选择您新创建的项目。
您将看到空的仪表板,我们需要选择要与之交互的 API,我想获取实时分析数据,因此我选择了分析 API。单击启用,然后您将被重定向回仪表板。
如仪表板上所述,单击“创建凭据”并输入以下内容:
您使用的是哪个 API? > 您之前选择的 API
-
您将从哪里调用 API? > 网络浏览器 (Javascript)
您将访问哪些数据? > 用户数据
授权重定向 URI > http://localhost/oauth2callback !重要
填写您的 OAuth 2.0 客户端 ID 的名称,什么都可以。
创建 OAuth 2.0 同意屏幕并单击完成。我们将从凭据页面获取凭据。
获取授权码
通过授权码,我们可以获得访问和刷新令牌。我们只需要这些,所以我采取了简单的方法,只需在浏览器中打开端点,验证并从地址栏中删除代码。
首先,我们需要 ClientId,因此请转到 Credential 页面并复制 clientId。它看起来像 864312357012-ftkcasd2f23123plh0tfivvsvasd32123k6b.apps.googleusercontent.com,将其粘贴到以下网址并在浏览器中打开:
# Replace <CLIENT_ID_HERE> with your client id
https://accounts.google.com/o/oauth2/auth?redirect_uri=<CLIENT_ID_HERE>&scope=https://www.googleapis.com/auth/analytics.readonly&approval_prompt=force&access_type=offline
# In the comments below, Phani mentioned that the above url is wrong and should be:
https://accounts.google.com/o/oauth2/auth?client_id=<replacemewithclientid>&scope=https://www.googleapis.com/auth/analytics.readonly&response_type=code&redirect_uri=<replacemewithredirecturi>&access_type=offline&approval_prompt=force
# I have no time to test it, but if you get an error with the original URL, then check the one mentioned by Phani.
确保您使用与我们创建凭据时设置的相同的重定向 URL。 http://localhost/oauth2callback
通过身份验证后,您将被重定向到 http://localhost/oauth2callback?code=4/QhUXhB*********_************u8jKZkjhsd2# 。复制末尾不带#的代码并将其存储在某处,稍后我们将需要它。
此代码只有一小时有效,如果访问令牌请求稍后失败,您将需要获取新的身份验证代码。所以记住这一点。
获取访问和刷新令牌
为了用授权代码交换令牌,我们将使用 Powershell 调用 https://www.googleapis.com/oauth2/v4/token。填写授权码、ClienId、客户端密钥并从 Google 开发者控制台重定向 Uri,然后运行脚本。它将把两个标记存储在文本文件中,以便您稍后可以使用它们
$requestUri = "https://www.googleapis.com/oauth2/v4/token"
$body = @{
code=<authcode>;
client_id=<clientId>;
client_secret=<clientSecret>;
redirect_uri=<redirectUrl>;
grant_type="authorization_code"; # Fixed value
};
$tokens = Invoke-RestMethod -Uri $requestUri -Method POST -Body $body;
# Store refreshToken
Set-Content $PSScriptRoot"\refreshToken.txt" $tokens.refresh_token
# Store accessToken
Set-Content $PSScriptRoot"\accessToken.txt" $tokens.access_token
刷新访问令牌
访问令牌的有效期仅为一小时,因此您需要使用刷新令牌获取新的访问令牌。来自 Google 的刷新令牌不会过期,因此请将其存储在安全的地方。使用下面的调用来获取新的访问令牌:
$refreshTokenParams = @{
client_id=$clientId;
client_secret=$clientSecret;
refresh_token=$refreshToken;
grant_type="refresh_token"; # Fixed value
}
$tokens = Invoke-RestMethod -Uri $requestUri -Method POST -Body $refreshTokenParams
从 Google API 检索数据
现在我们有了可以从 Google 获取数据的令牌。要开始使用,请查看 https://developers.google.com/oauthplayground/ 和 https://developers.google.com/apis-explorer/
举个例子,以下是从 Analytics 检索当前(实时)用户的方法:
# Request URL for Analytics Realtime and requesting the activeUsers
$viewId = 12345678 (Get it from the analytics admin page > view settings)
$requestUri = "https://www.googleapis.com/analytics/v3/data/realtime?ids=ga:$viewId&metrics=rt:activeUsers"
Invoke-RestMethod -Headers @{Authorization = "Bearer $accessToken"} -Uri $requestUri -Method GET -ContentType 'application/json'
更新:检查此 Google Api Explorer:https://ga-dev-tools.appspot.com/query-explorer/。它会为您生成一个 API 查询 URI。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag