Не удается пройти аутентификацию в хранилище данных Google через REST Api - PullRequest
0 голосов
/ 30 октября 2018

Я пытался получить доступ к хранилищу данных Google через их REST Api. Там написано, что они позволяют аутентификацию через API-ключ. Однако не похоже, что я смогу заставить его работать где угодно. Я скопировал фрагмент, созданный на их странице Try this API.

curl --request POST \
  'https://datastore.googleapis.com/v1/projects/PROJECT_ID:runQuery?key=[YOUR_API_KEY]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"query":{"filter":{"compositeFilter":{"op":"AND","filters":[{"propertyFilter":{"property":{"name":"id"},"op":"EQUAL","value":{"stringValue":"ID"}}}]}},"kind":[{"name":"NAME"}]},"partitionId":{"namespaceId":"NAMESPACE_ID","projectId":"PROJECT_ID"}}' \
  --compressed

Но он возвращает мне ошибку 401.

{
    "error": {
        "code": 401,
        "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
        "status": "UNAUTHENTICATED"
    }
}

Похоже, что вместо этого я должен использовать OAuth, что не соответствует их документации. Кто-нибудь испытывал нечто подобное?

1 Ответ

0 голосов
/ 30 октября 2018

Вы используете неверный ключ API.

Эта ссылка подробно описывает, какие сервисы поддерживают API-ключи. Cloud Datastore не входит в их число.

Использование API-ключей

Вы хотите использовать токен доступа, полученный из учетных данных учетной записи службы.

Просмотрите этот документ.

Использование OAuth 2.0

Шаги для создания токена доступа:

  1. Загрузка json-файла учетных данных учетной записи службы.
  2. Извлечение client_email, private_key и private_key_id.
  3. Создание полезной нагрузки json.
  4. Позвоните по URL авторизации: https://www.googleapis.com/oauth2/v4/token
  5. Возвращает объект json. Извлеките access_token.
  6. Используйте access_token вместо ключа API.

В Интернете есть примеры на разных языках. Ссылка поможет вам начать. Процесс кажется сложным, и это так, но как только вы поймете это, генерировать токены доступа легко и их можно будет использовать до истечения срока их действия (как правило, 60 минут, которые вы контролируете).

Этот документ для аутентификации Google Cloud Storage такой же, как и для Cloud Datastore. Ключом является понимание «Авторизация: Носитель», который является заголовком, который необходимо включить в запрос скручивания.

Аутентификация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...