Node.js не может получить доступ к API управления Google AdSense.«У пользователя нет учетной записи AdSense» - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь создать отчеты AdSense для веб-приложения, размещенного на node.js.Поскольку это межсерверная связь, мне нужно использовать служебную учетную запись.Я следовал этому руководству, но всегда получаю сообщение об ошибке:

{
 domain: "global"
 message: "User does not have an AdSense account."
 reason: "noAdSenseAccount"
}

также пробовал это руководство по токенам JSON , но также получаю ошибку выше.

Что я получил:

  • API управления Adsense включен.
  • Созданы учетные данные учетной записи службы
  • Добавлен адрес электронной почты учетной записи службы в Google AdSense User Management
  • Протестировано в Google API Explorer и работает отлично

снимок экрана

ПРИМЕЧАНИЕ: его статус зафиксирован "в ожидании».

Вот код, с которым я пытаюсь соединиться и получить данные:

const googleAuth = require('google-auth-library');
const GOOGLE_KEYS = require(path.join(__dirname, '/credentials/jwt.keys.json'));

this.jwtClient = new googleAuth.JWT(
  GOOGLE_KEYS.client_email,
  null,
  GOOGLE_KEYS.private_key,
  ['https://www.googleapis.com/auth/adsense'],
);
this.jwtClient.authorize(async (err: any, tokens: any) => {
  if (err) throw new Error(err);
  this.jwtClient.setCredentials(tokens);
  const url = `https://www.googleapis.com/adsense/v1.4/accounts`;
  const listData = await this.jwtClient.request({url})
    .catch((err: any) => {
      console.log(err, 'error');
      res.status(500).json(err)
     });
  res.status(200).json(data);
});

Мои вопросы:
1. Почему он застрял в состоянии «ожидания»?
2. Есть ли способ получить доступ к API с использованием учетных данных учетной записи службы?
3. Если да, то каким образом я могу этого достичь?

1 Ответ

0 голосов
/ 24 апреля 2019

API AdSense не поддерживает учетные записи служб [ 1 ], поэтому вам нужно будет создать учетные данные OAuth с помощью потока веб-приложений [ 2 ].

...