web-dev-qa-db-ja.com

Postmanを使用してOAuth 2.0 Google APIにアクセスする

Proximity Google API を使用してアクセスしようとしています Postman chrome app 。私は郵便配達員とグーグル開発ウェブサイトのチュートリアルに従いましたが、まだ401エラーメッセージを受け取っています。

私は何をしていますか?

  • 手順1-プロキシミティAPIを有効にします。

Proximity APIを使用するには、まずGoogle Devコンソールで有効にする必要があります。 this チュートリアルを使用して、プロジェクトのProximity APIのサポートを有効にしました

  • ステップ2-資格情報を取得します。

this チュートリアルによると、クライアントIDとシークレットを取得する必要があります。これは私が混乱しているところです。資格情報->資格情報の追加-> OAuth2.0クライアントID-> Chromeアプリラジオボタンの選択(Postmanを使用しているため)-> PostmanのChrome WebストアURLの最後の部分を入力[これは fhbjgbiflinjbdggehcddcbncdddomop] -> hit createボタンこれらの手順では、クライアントIDのみが生成され、シークレットは生成されません。

Google Devコンソールから、クライアントID、認証URI、トークンURIを持つJSONファイルをダウンロードできます enter image description here

これをダウンロードしましたが、Postmanを使用している場合、これはほとんど役に立ちません。このJSONファイルは、JSアプリケーションに含めることができるものだと思います。

  • ステップ3-Postmanを使用してAPIをテストする

enter image description here

何が得られますか?enter image description here

そして、デバッグURLをクリックすると、次の画面が表示されます

enter image description here

49
Sai

Postmanは、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 IDおよびClient secretフィールドをコピーします
  3. Postmanで[承認]タブを選択し、[OAuth 2.0]タイプを選択します。 [新しいアクセストークンを取得]をクリックします

    • 次のようにGET NEW ACCESS TOKENフォームに入力します
      • トークン名: '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で生成されたClient ID(例: '123456789012-abracadabra1234546789blablabla12.apps.googleusercontent.com')
      • クライアントシークレット:ステップ2で生成されたClient secret(例: 'ABRACADABRAus1ZMGHvq9R-L')
      • スコープ:必要なOAuthスコープ(たとえば、https://www.googleapis.com/auth/cloud-platform)については、Googleドキュメントを参照してください
      • 状態:空
      • クライアント認証:「基本認証ヘッダーとして送信」
    • 「トークンのリクエスト」および「トークンの使用」をクリックします
  4. Googleドキュメントに従って、リクエストのメソッド、パラメーター、および本文を設定します
39
DimaTX

これまでに見つけた最良の方法は、Oauthプレイグラウンドに行くことです: https://developers.google.com/oauthplayground/

  1. 関連するGoogle APIカテゴリを選択し、UIでそのカテゴリ内のスコープを選択します。
  2. 「APIの認証」青いボタンをクリックして認証コードを取得します。青いボタンをクリックして、トークンの認証コードを交換します。
  3. OAuth2トークンを保存し、以下に示すように使用します。

REST AP​​IリクエストのHTTPヘッダーに、「Authorization:Bearer」を追加します。ここでは、承認がキーであり、「ベアラー」です。例:「承認:Bearer za29.KluqA3vRtZChWfJDabcdefghijklmnopqrstuvwxyz6nAZ0y6ElzDT3yH3MT5」

38
  1. https://console.developers.google.com/apis/credentials に移動します
  2. webアプリケーションの資格情報を作成します。

Postman APIアクセス

  1. postmanのoauth2でこれらの設定を使用します。

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. ユーザーの使用にパッチを適用するには:

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

PATCH https://www.googleapis.com/admin/directory/v1/users/[email protected]

 {
  "customSchemas": {
     "SAML": {
       "role": [
         {
          "value": "arn:aws:iam::123456789123:role/Admin,arn:aws:iam::123456789123:saml-provider/GoogleApps",
          "customType": "Admin"
         }
       ]
     }
   }
}
11

適切なアプリの種類の資格情報を生成していないことがわかりました。
Google oAuth 2 APIをテストするためにPostmanを使用している場合は、選択します
資格情報->資格情報の追加-> OAuth2.0クライアントID-> Webアプリケーション

enter image description here

7
Sai

これは古い質問ですが、選択された答えはなく、この問題を自分で解決しました。私のソリューションは次のとおりです。

  1. そもそも、Google APIを使用するように設定されていることを確認してください。 Googleの 前提条件のリスト を参照してください。私はGoogleマイビジネスで働いていたので、それも Get Started プロセスで行った。

  2. OAuth 2.0プレイグラウンド では、ステップ1では認証するAPIを選択する必要があります。ケースに該当するものを選択または入力します(Googleマイビジネスの場合は、「 https://www.googleapis.com/auth/plus.business.manage 」を入力する必要がありました独自のスコープ」入力フィールド)。 注:これは、 Get Started guideの「Make a simple HTTP request」セクションのステップ6で説明したものと同じです。

  3. 認証に成功すると、OAuthプレイグラウンドの「ステップ1の結果」ステップで「アクセストークン」が返されます。このトークンをクリップボードにコピーします。

  4. Postmanを開き、必要に応じてコレクションを開きます。

  5. Postmanで、要求タイプとして「GET」が選択されていることを確認し、要求タイプのドロップダウンの下にある「承認」タブをクリックします。

  6. [認証] [タイプ]ドロップダウンメニューで、[ベアラートークン]を選択します

  7. OAuthプレイグラウンドからコピーした以前にコピーした「アクセストークン」を、Postmanに表示される「トークン」フィールドに貼り付けます。

  8. もうすぐ!動作するかどうかをテストするには、PostmanのメインURL入力バーに https://mybusiness.googleapis.com/v4/accounts/ を入力し、送信ボタンをクリックします。次のような応答でアカウントの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"
            }
        ]
    }
    
4
irmalcol