我正在尝试使用Proximity Google API访问Postman chrome app。我已经关注邮递员和谷歌开发网站的教程,但我仍然收到401错误消息。
我在做什么?
要使用Proximity API,必须先在Google Dev控制台中启用它。 使用this教程,我已为项目启用了Proximity API支持
根据this教程,我需要获取客户端ID和密码。这是我感到困惑的地方。凭据 - >添加凭据 - > OAuth2.0客户端ID->选择Chrome应用程序单选按钮(因为我使用的是Postman) - >输入Postman的Chrome网上商店URL的最后一部分[即{{ 3}} - >点击创建按钮这些步骤只会生成客户端ID,而不是秘密......我做错了什么?
从Google Dev控制台,可以下载具有客户端ID,身份验证URI和令牌URI的JSON文件 fhbjgbiflinjbdggehcddcbncdddomop]
我下载了这个,但如果我使用Postman,这没什么帮助。我猜这个JSON文件可以包含在JS应用程序中。
而且,一旦我点击调试URL,我就会看到以下屏幕
答案 0 :(得分:36)
到目前为止,我发现的最佳方式是去Oauth游乐场:https://developers.google.com/oauthplayground/
在REST API请求的HTTP标头中,添加:"授权:承载"。在这里,授权是关键,而且#34; Bearer"。例如:"授权:持票人za29.KluqA3vRtZChWfJDabcdefghijklmnopqrstuvwxyz6nAZ0y6ElzDT3yH3MT5"
答案 1 :(得分:26)
邮递员将查询模仿Web应用程序的Google API
生成OAuth 2.0令牌:
创建OAuth 2.0客户端ID
getpostman.com
添加到授权域。点击保存。https://www.getpostman.com/oauth2/callback
Client ID
和Client secret
字段以供以后使用在邮递员中,选择“授权”选项卡,然后选择“ OAuth 2.0”类型。点击“获取新访问令牌”
https://www.getpostman.com/oauth2/callback
https://accounts.google.com/o/oauth2/auth
https://accounts.google.com/o/oauth2/token
Client ID
(例如'123456789012-abracadabra1234546789blablabla12.apps.googleusercontent.com')Client secret
(例如'ABRACADABRAus1ZMGHvq9R-L')https://www.googleapis.com/auth/cloud-platform
)答案 2 :(得分:10)
在Postman中使用oauth2进行这些设置:
访问令牌网址= https://accounts.google.com/o/oauth2/token
SCOPE = https://www.googleapis.com/auth/admin.directory.userschema
{
"fields": [
{
"fieldName": "role",
"fieldType": "STRING",
"multiValued": true,
"readAccessType": "ADMINS_AND_SELF"
}
],
"schemaName": "SAML"
}
SCOPE = https://www.googleapis.com/auth/admin.directory.user
PATCH https://www.googleapis.com/admin/directory/v1/users/admin@email.com
{
"customSchemas": {
"SAML": {
"role": [
{
"value": "arn:aws:iam::123456789123:role/Admin,arn:aws:iam::123456789123:saml-provider/GoogleApps",
"customType": "Admin"
}
]
}
}
}
答案 3 :(得分:7)
我发现我没有为正确的应用类型生成凭据
如果您使用Postman测试Google oAuth 2 API,请选择
凭据 - >添加凭据 - > OAuth2.0客户端ID - >网络应用程序。
答案 4 :(得分:3)
这是一个古老的问题,但没有选择的答案,我自己解决了这个问题。这是我的解决方案:
请首先确保您已设置为可以使用Google API。请参阅Google的list of prerequisites。我当时在使用“ Google我的商家”,因此也经历了Get Started流程。
在OAuth 2.0 playground中,步骤1要求您选择要认证的API。选择或输入适合您的情况(对于Google My Business,我必须在“输入您自己的范围”输入字段中输入https://www.googleapis.com/auth/plus.business.manage)。 注意:这与Get Started指南的“发出简单的HTTP请求”部分的步骤6中的描述相同。
假设身份验证成功,您应该在OAuth操场的“步骤1的结果”步骤中获得“访问令牌”。将此令牌复制到剪贴板。
打开邮递员并根据需要打开所需的任何收藏集。
在邮递员中,确保选择“ GET”作为请求类型,然后单击请求类型下拉菜单下方的“授权”标签。
在“授权”类型下拉菜单中,选择“承载者令牌”
将从OAuth游乐场复制的先前复制的“访问令牌”粘贴到Postman中显示的“令牌”字段中。
快到了!要测试一切是否正常,请将https://mybusiness.googleapis.com/v4/accounts/放入Postman的主URL输入栏中,然后单击发送按钮。您应该在响应中返回一个帐户的JSON列表,该列表类似于以下内容:
{
"accounts": [
{
"name": "accounts/REDACTED",
"accountName": "REDACTED",
"type": "PERSONAL",
"state": {
"status": "UNVERIFIED"
}
},
{
"name": "accounts/REDACTED",
"accountName": "REDACTED",
"type": "LOCATION_GROUP",
"role": "OWNER",
"state": {
"status": "UNVERIFIED"
},
"permissionLevel": "OWNER_LEVEL"
}
]
}
答案 5 :(得分:1)
当前答案已过时。这是最新的流程:
alexwhan确认,此处概述的方法仍然有效(2020年12月10日)。
在示例中,我们将使用 YouTube数据API 。进行相应的更改。
确保您的项目有enabled your desired API。
https://console.cloud.google.com/apis/credentials
https://oauth.pstmn.io/v1/callback
我们稍后将使用该文件对Postman进行身份验证。
Click here to see the settings
您可以在.json文件中找到所需的其他内容。
忽略浏览器消息“不安全”等。这将一直显示,直到Google官员筛选了您的应用为止。在这种情况下,由于Postman是应用程序,因此它将始终显示。
答案 6 :(得分:0)
作为@DimaTx 最佳答案的补充,不要忘记在“使用浏览器授权”复选框上打勾,正如团队邮递员自己在 github.com/postmanlabs/postman-app-support/issues 中所解释的/7700
这将防止/解决“此浏览器或应用可能不安全”的结果。
答案 7 :(得分:0)
Google 已更改访问令牌 URL:https://accounts.google.com/o/oauth2/token
。
现在需要是:https://oauth2.googleapis.com/token