使用Postman访问OAuth 2.0 Google API

时间:2015-08-18 15:24:09

标签: oauth-2.0 google-api google-api-client postman google-oauth2

我正在尝试使用Proximity Google API访问Postman chrome app。我已经关注邮递员和谷歌开发网站的教程,但我仍然收到401错误消息。

我在做什么?

  • 步骤1 - 启用Proximity API:

要使用Proximity API,必须先在Google Dev控制台中启用它。 使用this教程,我已为项目启用了Proximity API支持

  • 第2步 - 获取凭据:

根据this教程,我需要获取客户端ID和密码。这是我感到困惑的地方。凭据 - >添加凭据 - > OAuth2.0客户端ID->选择Chrome应用程序单选按钮(因为我使用的是Postman) - >输入Postman的Chrome网上商店URL的最后一部分[即{{ 3}} - >点击创建按钮这些步骤只会生成客户端ID,而不是秘密......我做错了什么?

从Google Dev控制台,可以下载具有客户端ID,身份验证URI和令牌URI的JSON文件 fhbjgbiflinjbdggehcddcbncdddomop]

我下载了这个,但如果我使用Postman,这没什么帮助。我猜这个JSON文件可以包含在JS应用程序中。

  • 第3步 - 使用邮递员测试API

enter image description here

我得到了什么? enter image description here

而且,一旦我点击调试URL,我就会看到以下屏幕

enter image description here

8 个答案:

答案 0 :(得分:36)

到目前为止,我发现的最佳方式是去Oauth游乐场:https://developers.google.com/oauthplayground/

  1. 选择相关的google api类别,然后在界面中选择该类别中的范围。
  2. 点击"授权API"获取授权码蓝色按钮。 通过单击蓝色按钮来交换令牌的授权代码。
  3. 存储OAuth2令牌并使用它,如下所示。
  4. 在REST API请求的HTTP标头中,添加:"授权:承载"。在这里,授权是关键,而且#34; Bearer"。例如:"授权:持票人za29.KluqA3vRtZChWfJDabcdefghijklmnopqrstuvwxyz6nAZ0y6ElzDT3yH3MT5"

答案 1 :(得分:26)

邮递员将查询模仿Web应用程序的Google API

生成OAuth 2.0令牌:

  1. 确保已启用Google API
  2. 创建OAuth 2.0客户端ID

    • 转到Google控制台-> API-> OAuth同意屏幕
      • getpostman.com添加到授权域。点击保存。
    • 转到Google控制台-> API->凭据
      • 单击“创建凭据”-> OAuth客户端ID-> Web应用程序
        • 名称:“ getpostman”
        • 授权的重定向URI:https://www.getpostman.com/oauth2/callback
    • 复制生成的Client IDClient secret字段以供以后使用
  3. 在邮递员中,选择“授权”选项卡,然后选择“ OAuth 2.0”类型。点击“获取新访问令牌”

    • 按以下方式填写“获取新的访问令牌”表格
      • 令牌名称:“ Google OAuth getpostman”
      • 授予类型:“授权码”
      • 回调URL:https://www.getpostman.com/oauth2/callback
      • 验证网址:https://accounts.google.com/o/oauth2/auth
      • 访问令牌URL:https://accounts.google.com/o/oauth2/token
      • 客户端ID:在步骤2中生成的Client ID(例如'123456789012-abracadabra1234546789blablabla12.apps.googleusercontent.com')
      • 客户端密钥:在步骤2中生成的Client secret(例如'ABRACADABRAus1ZMGHvq9R-L')
      • 范围:请参阅Google文档以获取所需的OAuth范围(例如https://www.googleapis.com/auth/cloud-platform
      • 状态:空
      • 客户端身份验证:“发送为基本身份验证标头”
    • 点击“请求令牌”和“使用令牌”
  4. 根据Google文档设置请求的方法,参数和正文

答案 2 :(得分:10)

  1. 转到https://console.developers.google.com/apis/credentials
  2. 创建Web应用程序凭据。
  3. Postman API Access

    1. 在Postman中使用oauth2进行这些设置:

    2. SCOPE = https://www.googleapis.com/auth/admin.directory.userschema

      发布https://www.googleapis.com/admin/directory/v1/customer/customer-id/schemas

      {
        "fields": [
          {
            "fieldName": "role",
            "fieldType": "STRING",
            "multiValued": true,
            "readAccessType": "ADMINS_AND_SELF"
          }
        ],
        "schemaName": "SAML"
      }
      
      1. 修补用户使用:
      2. 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 - >网络应用程序

enter image description here

答案 4 :(得分:3)

这是一个古老的问题,但没有选择的答案,我自己解决了这个问题。这是我的解决方案:

  1. 请首先确保您已设置为可以使用Google API。请参阅Google的list of prerequisites。我当时在使用“ Google我的商家”,因此也经历了Get Started流程。

  2. OAuth 2.0 playground中,步骤1要求您选择要认证的API。选择或输入适合您的情况(对于Google My Business,我必须在“输入您自己的范围”输入字段中输入https://www.googleapis.com/auth/plus.business.manage)。 注意:这与Get Started指南的“发出简单的HTTP请求”部分的步骤6中的描述相同。

  3. 假设身份验证成功,您应该在OAuth操场的“步骤1的结果”步骤中获得“访问令牌”。将此令牌复制到剪贴板。

  4. 打开邮递员并根据需要打开所需的任何收藏集。

  5. 在邮递员中,确保选择“ GET”作为请求类型,然后单击请求类型下拉菜单下方的“授权”标签。

  6. 在“授权”类型下拉菜单中,选择“承载者令牌”

  7. 将从OAuth游乐场复制的先前复制的“访问令牌”粘贴到Postman中显示的“令牌”字段中。

  8. 快到了!要测试一切是否正常,请将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

创建OAuth 2.0客户端

  1. 访问https://console.cloud.google.com/apis/credentials
  2. 点击创建凭据
  3. 选择 OAuth客户端ID
  4. 对于应用程序类型,选择 Web应用程序
  5. 添加名称
  6. 授权重定向URI
  7. 添加以下URI
https://oauth.pstmn.io/v1/callback
  1. 点击保存
  2. 点击刚刚生成的OAuth客户端
  3. 顶部栏中中,点击下载JSON ,然后将文件保存在计算机上的某个位置。

我们稍后将使用该文件对Postman进行身份验证。

通过OAuth 2.0客户端授权邮递员

  1. TYPE 下的 Auth 标签中,选择 OAuth 2.0
  2. 对于访问令牌,请输入我们下载 client_secret_ [YourClientID] .json 文件中的访问令牌。在步骤9
  3. 点击获取新访问令牌
  4. 确保您的设置如下:

Click here to see the settings

您可以在.json文件中找到所需的其他内容。

  1. 点击请求令牌
  2. 新的浏览器标签/窗口将打开
  3. 打开浏览器标签后,通过相应的Google帐户登录
  4. 接受同意屏幕
  5. 完成

忽略浏览器消息“不安全”等。这将一直显示,直到Google官员筛选了您的应用为止。在这种情况下,由于Postman是应用程序,因此它将始终显示。

答案 6 :(得分:0)

作为@DimaTx 最佳答案的补充,不要忘记在“使用浏览器授权”复选框上打勾,正如团队邮递员自己在 github.com/postmanlabs/postman-app-support/issues 中所解释的/7700

这将防止/解决“此浏览器或应用可能不安全”的结果。

enter image description here

答案 7 :(得分:0)

Google 已更改访问令牌 URL:https://accounts.google.com/o/oauth2/token。 现在需要是:https://oauth2.googleapis.com/token