Импортировать существующие push-подписки - PullRequest
0 голосов
/ 18 марта 2019

У меня есть действующие push-подписки на службу Onesignal, и я пытаюсь повторно подписать ее на Firebase Cloud Messaging. Используя пример Я получил ошибку:

{
    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'
   }
}

Пример моего запроса:

let https = require('https');
let google = require('google-auth-library');
let key = require(process.cwd() + "/credentials/creadential.json");
let jwt = new google.JWT(
    key.client_email,
    null,
    key.private_key,
    ['https://www.googleapis.com/auth/firebase.messaging'],
    null
);
let authTokens = await jwt.authorize();
let cryptoKey = "SERVER_PUBLIC_KEY";
let headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer " + authTokens.access_token,
    "Crypto-Key": "p256ecdsa=" + cryptoKey,
};  
let options = {
    method: "POST",
    headers: headers
};
let message = {
    "endpoint": "https://fcm.googleapis.com/fcm/send/....",
    "keys": {
        "auth": "...",
        "p256dh": "..."
    }
};
let jsonMessage = JSON.stringify(message);
let req = https.request("https://iid.googleapis.com/v1/web/iid", options, function(res) {
    res.on('data', (data) => {
        console.log("Response:");
        console.log(JSON.parse(data));
    });
});

req.on('error', function(e) {
    console.log("ERROR:");
    console.log(e);
});

req.write(jsonMessage);
req.end();

В интернете не было найдено решения.

...