Первый шаг в Google API + GMAIL = неверный запрос - PullRequest
0 голосов
/ 09 апреля 2020

Я очень новичок в Google API, в конце концов я хочу отправлять электронные письма, используя его. Но сейчас я пытаюсь что-то немного проще (а затем создать его).

Список всех электронных писем в папке "Входящие".

С Gmail > API > Reference, Я выполнил следующие действия:

На консоли API Google:

  1. Создал мое приложение.
  2. В разделе API & Services > Credentials я создал пользователя с ролью Project/Owner (просто чтобы убедиться, что на этом этапе нет проблем с разрешениями).
  3. Затем я создал ключ и скачал файл json.
  4. При API & Services > Library я включил Gmail.

И, используя Справочник, я собрал это фрагмент:

app.ts

import { google } from 'googleapis';
import credentials from './credentials';

async function main() {
  const auth = new google.auth.GoogleAuth({
    credentials,
    scopes: [
      'https://mail.google.com/',
      'https://www.googleapis.com/auth/gmail.compose',
      'https://www.googleapis.com/auth/gmail.modify',
      'https://www.googleapis.com/auth/gmail.readonly',
      'https://www.googleapis.com/auth/gmail.metadata'
    ]
  });

  const authClient = await auth.getClient();

  const gmail = google.gmail({ version: 'v1', auth: authClient });

  const data = await gmail.users.messages.list({ userId: 'me' });

  console.log(data);
}

main().catch(console.log);

пакет. json

...

"dependencies": {
  googleapis": "^48.0.0"
}

...

Каждый раз, когда я запускал этот фрагмент, я получал:

[01] GaxiosError: неверный запрос
[02] в Gax ios ._ запросе (~ \ node_modules \ gaxios \ build \ src \ gax ios. js: 85: 23)
. ..
[06] ответ: {
...
[35] статус: 400,
[36] statusText: 'Bad Request',
[37] запрос: {
[38] responseURL: 'https://www.googleapis.com/gmail/v1/users/me/messages'
...

Я перепробовал множество различных конфигураций в консоли API Google. Попытался изменить область действия (список URL-адресов со строки 8 на 12) для многих других, изменить учетные данные. json на формат. js и .ts, вместо глобальной импорта поместить глобальную переменную (GOOGLE_APPLICATION_CREDENTIALS) вместо прямого импорта , Но, несмотря на все мои попытки, я получил ту же ошибку.

Как я могу это исправить?

1 Ответ

0 голосов
/ 09 апреля 2020

Ознакомьтесь с примером здесь , который делает именно то, что вы хотите. Кажется, они используют sampleclient вместо credentials библиотеки.

...