Я пытаюсь создать отчеты 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. Если да, то каким образом я могу этого достичь?