Oauth 2.0 使用Postman访问OAuth 2.0 Google API

Oauth 2.0 使用Postman访问OAuth 2.0 Google API,oauth-2.0,google-api,google-api-client,postman,google-oauth,Oauth 2.0,Google Api,Google Api Client,Postman,Google Oauth,我正在尝试使用访问。我已经在邮递员和谷歌开发者网站上学习了教程,但仍然收到401错误消息 我在做什么? 步骤1-启用接近API: 为了使用接近API,必须首先在Google开发控制台中启用它。 使用教程,我已经为我的项目启用了对邻近API的支持 步骤2-获取凭据: 根据教程,我需要获得客户端ID和密码。这就是我困惑的地方。凭证->添加凭证->OAuth2.0客户端ID->选择Chrome应用单选按钮(因为我使用的是邮递员)->输入邮递员的Chrome Web store URL的最后一部

我正在尝试使用访问。我已经在邮递员和谷歌开发者网站上学习了教程,但仍然收到401错误消息

我在做什么?

  • 步骤1-启用接近API:
为了使用接近API,必须首先在Google开发控制台中启用它。 使用教程,我已经为我的项目启用了对邻近API的支持

  • 步骤2-获取凭据:
根据教程,我需要获得客户端ID和密码。这就是我困惑的地方。凭证->添加凭证->OAuth2.0客户端ID->选择Chrome应用单选按钮(因为我使用的是邮递员)->输入邮递员的Chrome Web store URL的最后一部分[这是->点击创建按钮这些步骤只会生成客户端ID,而不是密码..我做错什么了吗

从Googledev控制台,可以下载一个JSON文件,该文件具有客户端id、身份验证URI和令牌URI

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

  • 步骤3-使用Postman测试API

我得到了什么?

一旦我点击调试URL,我就会看到下面的屏幕


我发现我没有为正确的应用程序类型生成凭据。
如果您正在使用Postman测试Google oAuth 2 API,请选择
凭据->添加凭据->OAuth2.0客户端ID->Web应用程序


到目前为止,我发现最好的方法是去Oauth游乐场:

  • 选择相关的GoogleAPI类别,然后在UI中选择该类别内的范围
  • 点击“授权API”蓝色按钮获取授权码。 通过单击蓝色按钮为令牌交换授权代码
  • 存储OAuth2令牌并使用它,如下所示
  • 在REST API请求的HTTP头中,添加:“Authorization:Bearer”。这里,Authorization是密钥,Bearer是“Bearer”。例如:“Authorization:Bearer za29.kluqa3vrtzchwfjdAbcdefghijklmnopqrstuvxyz6naz0y6elzdt3hy3mt5”

  • 创建web应用程序凭据
  • 在Postman中对oauth2使用以下设置:

    • 验证URL=
    • 访问令牌URL=

    • 选择HTTP API的作用域
    • 生成令牌
    • 要添加架构,请使用:
  • SCOPE=https://www.googleapis.com/auth/admin.directory.userschema

    发布https://www.googleapis.com/admin/directory/v1/customer/customer-id/schemas
  • 要修补用户使用,请执行以下操作:
  • 范围=

    补丁


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

  • 首先确保你已经设置好使用谷歌API。请参阅谷歌的。我在谷歌我的业务中工作,所以我也经历了这个过程

  • 在中,步骤1要求您选择要验证的API。选择或输入适用于您的案例的API(在我的Google my Business案例中,我必须输入“输入您自己的范围”输入字段)。注意:这与指南“生成简单HTTP请求”部分的步骤6中描述的内容相同

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

  • 打开“邮递员”并根据需要打开任何您想要的收藏

  • 在Postman中,确保选择“GET”作为请求类型,然后单击请求类型下拉列表下方的“Authorization”选项卡

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

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

  • 差不多了!要测试一切是否正常,请将其放入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"
            }
        ]
    }
    

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

    生成OAuth 2.0令牌:

  • 确保已启用Google API
  • 创建OAuth 2.0客户端ID

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

    • 按如下所示填写获取新访问令牌表单
      • 令牌名称:“Google OAuth getpostman”
      • 授权类型:“授权代码”
      • 回调URL:
        https://www.getpostman.com/oauth2/callback
      • 验证URL:
        https://accounts.google.com/o/oauth2/auth
      • 访问令牌URL:
        https://accounts.google.com/o/oauth2/token
      • 客户端ID:
        步骤2中生成的客户端ID
        (例如,“12345678012-Abracadabra123456789Blabla12.apps.googleusercontent.com”)
      • 客户机密:
        在步骤2中生成的客户机密
        (例如,“Abracadabraus1ZMGHQ9R-L”)
      • 范围:请参阅Google文档以了解所需的OAuth范围(例如)
      • 状态:空
      • 客户端身份验证:“作为基本身份验证头发送”
    • 单击“请求令牌”和“使用令牌”
  • 根据G设置请求的方法、参数和主体
     {
      "customSchemas": {
         "SAML": {
           "role": [
             {
              "value": "arn:aws:iam::123456789123:role/Admin,arn:aws:iam::123456789123:saml-provider/GoogleApps",
              "customType": "Admin"
             }
           ]
         }
       }
    }
    
    
    {
        "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"
            }
        ]
    }
    
    https://oauth.pstmn.io/v1/callback