Використання Postman для доступу до API API Google OAuth 2.0


78

Я намагаюся отримати доступ до API Google Proximity за допомогою програми Postman chrome . Я читав підручники на веб-сайті листоноші та google dev, але все ще отримую повідомлення про помилку 401.

Що я роблю?

  • Крок 1 - Увімкніть API близькості:

Для того, щоб використовувати API Proximity, його потрібно спочатку увімкнути в консолі Google Dev. За допомогою цього підручника я включив підтримку Proximity API для свого проекту

  • Крок 2 - Отримайте облікові дані:

Згідно з цим посібником, мені потрібно отримати ідентифікатор клієнта та секрет. Тут я розгублений. Повноваження -> Додати облікові дані -> Ідентифікатор клієнта OAuth2.0 -> вибрати перемикач додатка Chrome (оскільки я використовую Postman) -> ввести останню частину URL-адреси веб-магазину Chrome Postman [що є fhbjgbiflinjbdggehcddcbncdddomop] -> натисніть кнопку Створити Ці кроки генерувати лише ідентифікатор клієнта, а не секрет .. я щось роблю не так?

З консолі Google Dev можна завантажити файл JSON, який має ідентифікатор клієнта, URI аутентифікації та URI маркера. введіть тут опис зображення

Я завантажив це, але це мало допомагає, якщо я використовую Листоноша. Я припускаю, що цей файл JSON - це те, що може бути включено до програми JS.

  • Крок 3 - Використовуйте Postman для тестування API

введіть тут опис зображення

Що я отримую? введіть тут опис зображення

І коли я натискаю URL-адресу налагодження, я бачу наступний екран

введіть тут опис зображення

Відповіді:


129

Листоноша надішле запит Google API, що видає себе за веб-програму

Створіть маркер OAuth 2.0:

  1. Переконайтеся, що API Google увімкнено
  2. Створіть ідентифікатор клієнта OAuth 2.0

    • Перейдіть до Google Console -> API -> Екран згоди OAuth
      • Додати getpostman.comдо авторизованих доменів. Натисніть Зберегти.
    • Перейдіть до Google Console -> API -> Повноваження
      • Клацніть на «Створити облікові дані» -> Ідентифікатор клієнта OAuth -> Веб-програма
        • Ім'я: 'getpostman'
        • Уповноважені URI переспрямування: https://www.getpostman.com/oauth2/callback
    • Скопіюйте згенеровані Client IDта Client secretполя для подальшого використання
  3. У пошті виберіть вкладку Авторизація та виберіть тип "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
      • Ідентифікатор клієнта: Client IDстворений на кроці 2 (наприклад, '123456789012-abracadabra1234546789blablabla12.apps.googleusercontent.com')
      • Клієнтський секрет: Client secretгенерується на кроці 2 (наприклад, 'ABRACADABRAus1ZMGHvq9R-L')
      • Сфера застосування: перегляньте документи Google для необхідного обсягу OAuth (наприклад, https://www.googleapis.com/auth/cloud-platform )
      • Стан: порожній
      • Клієнтська автентифікація: "Надіслати як основний заголовок авторизації"
    • Натисніть "Запитувати маркер" та "Використовувати маркер"
  4. Встановіть метод, параметри та тіло вашого запиту відповідно до документів Google

35
Більш ретельно пояснюється, ніж співробітниками Google :)
Геннадій Рябкін

1
Здавалося, це спрацювало, поки я не дійшов до наступного випуску, який, схоже, пов’язаний з листоношею, яка не підтримує автентифікацію google 2FA. Ось повідомлення: "Програма вимагає дозволу на доступ до вашого облікового запису Google". Будь-яка ідея?
LMG,

2
Бездоганна відповідь. Дуже дякую !
uribalb

4
Я отримую результат "Цей веб-переглядач або додаток може бути не безпечним"
stansult

1
Цей потік вже не працює: Google забороняє автентифікацію поза основними браузерами. Команда листоноші каже, що вони працюють над функцією "Авторизувати за допомогою браузера" - github.com/postmanlabs/postman-app-support/issues/7700
Лев

58

Найкращий спосіб, який я знайшов дотепер, - це зайти на дитячий майданчик Оаута тут: https://developers.google.com/oauthplayground/

  1. Виберіть відповідну категорію API API Google, а потім виберіть область застосування в цій категорії в інтерфейсі користувача.
  2. Отримайте код авторизації, натиснувши синю кнопку "авторизувати API". Обміняйте код авторизації на маркер, натиснувши синю кнопку.
  3. Зберігайте маркер OAuth2 і використовуйте його, як показано нижче.

У заголовку HTTP для запиту REST API додайте: "Авторизація: носій". Тут авторизація є ключовою, і "носієм". Наприклад: "Авторизація: Носій za29.KluqA3vRtZChWfJDabcdefghijklmnopqrstuvwxyz6nAZ0y6ElzDT3yH3MT5"


2
Цей робочий процес вирішив мою проблему! Тільки для доповнення пояснення, після «Обмін кодом авторизації на маркер» я скопіював значення в поле «Токен доступу» і використав його як носій авторизації на листоноші
manasouza

12
  1. перейдіть на https://console.developers.google.com/apis/credentials
  2. створити облікові дані веб-програми.

Доступ до API листоноші

  1. використовуйте ці налаштування з oauth2 у Postman:

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/admin@email.com

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

8

Я з’ясував, що не створюю облікові дані для потрібного типу програми.
Якщо ви використовуєте Postman для тестування API Google oAuth 2, виберіть
Повноваження -> Додати облікові дані -> Ідентифікатор клієнта OAuth2.0 -> Веб-програма .

введіть тут опис зображення


5

Це старе запитання, але воно не має обраної відповіді, і я просто вирішив цю проблему сам. Ось моє рішення:

  1. Переконайтесь, що ви налаштовані на роботу зі своїм Google API. Перегляньте список передумов Google . Я працював із Google My Business, тому я також пройшов це Початок роботи .

  2. На ігровому майданчику OAuth 2.0 на кроці 1 потрібно вибрати, який API потрібно аутентифікувати. Виберіть або введіть відповідно до вашого випадку (у моєму випадку для Google My Business мені довелося ввести https://www.googleapis.com/auth/plus.business.manage у поле введення "Введіть власні обсяги"). Примітка: це те ж саме, що описано в пункті 6 розділу «Зробити простий запит HTTP» від Get Started керівництва .

  3. Припускаючи успішну автентифікацію, ви повинні отримати "маркер доступу", повернутий у кроці "Результат кроку 1" на майданчику OAuth. Скопіюйте цей маркер у свій буфер обміну.

  4. Відкрийте "Листоноша" та відкрийте будь-яку колекцію, яку ви бажаєте.

  5. У пошті переконайтеся, що для типу запиту вибрано "ОТРИМАТИ", і натисніть на вкладку "Авторизація" під спадним списком типу запиту.

  6. У спадному меню Авторизація "ТИП" виберіть "Токен на пред'явника"

  7. Вставте свій раніше скопійований "Токен доступу", який ви скопіювали з майданчика OAuth, у поле "Токен", яке відображається в пошті.

  8. Майже там! Щоб перевірити, чи все працює, вставте https://mybusiness.googleapis.com/v4/accounts/ в основний рядок введення 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"
            }
        ]
    }
    

4

Поточна відповідь застаріла. Ось сучасний потік:

Викладений тут підхід досі працює (10.12.2020), як підтвердив alexwhan.

Для нашого прикладу ми використаємо API даних YouTube . Внесіть відповідні зміни.

Переконайтеся, що ви включили бажаний API для вашого проекту.

Створіть клієнт OAuth 2.0

  1. Відвідайте https://console.cloud.google.com/apis/credentials
  2. Натисніть СТВОРИТИ ВІДПОВІДАЛЬНІ
  3. Виберіть ідентифікатор клієнта OAuth
  4. Для типу програми виберіть веб-програму
  5. Додайте ім’я
  6. Додайте наступний URI для авторизованих URI переспрямування
https://oauth.pstmn.io/v1/callback
  1. Натисніть Зберегти
  2. Натисніть на щойно створений клієнт OAuth
  3. На верхній панелі натисніть СКАЧАТИ JSON і збережіть файл десь на своїй машині.

Пізніше ми використаємо файл для автентифікації листоноші.

Авторизуйте листоношу за допомогою клієнта OAuth 2.0

  1. На вкладці Auth у розділі TYPE виберіть OAuth 2.0
  2. Для маркера доступу введіть маркер доступу, який знаходиться всередині файлу client_secret_ [YourClientID] .json, який ми завантажили на кроці 9
  3. Клацніть на Отримати новий маркер доступу
  4. Переконайтеся, що ваші налаштування такі:

Клацніть тут, щоб побачити налаштування

Все інше, що вам потрібно, ви можете знайти у своєму .json-файлі.

  1. Клацніть на Запит маркера
  2. Відкриється нова вкладка / вікно браузера
  3. Як тільки вкладка браузера відкриється, увійдіть через відповідний обліковий запис Google
  4. Прийміть екран згоди
  5. Готово

Проігноруйте повідомлення браузера "Не безпечно" тощо. Це буде відображатися, доки ваш додаток не буде перевірено службовими особами Google. У цьому випадку воно завжди відображатиметься, оскільки додаток є Листоноша.


Як це не має голосів через два роки. Це єдине рішення, яке все ще працює
alexwhan

Оновлено публікацію, щоб відобразити ваше підтвердження того, що вона все ще працює.
Zenahr
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.