I am upgrading aws sns legacy Firebase Cloud Messaging (FCM) API to FCM http v1 api. for that in my lambda function (in nodejs) added below code.
const admin = require('firebase-admin');
const { GoogleAuth } = require('google-auth-library');
const axios = require('axios');
const serviceAccount = require('../../service-account.json');
const auth = new GoogleAuth({
credentials: serviceAccount,
scopes: ['https://www.googleapis.com/auth/firebase.messaging']
});
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
async function getAccessToken() {
const client = await auth.getClient();
const token = await client.getAccessToken();
console.log("token ",token.token)
return token.token;
}
async function sendFcmMessage(message) {
const token = await getAccessToken();
try {
const response = await axios.post(
'https://fcm.googleapis.com/v1/projects/projct_id/messages:send',
{
message: message
},
{
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
}
);
console.log('Successfully sent message:', response.data);
} catch (error) {
console.error('Error sending message:', error.response ? error.response.data : error.message);
}
}
const sentmessage = {
token: deviceToken,
notification: {
title: 'Test Notification',
body: realDeviceName + ' ' + txtLevel + ': ' + txtValue, // "body" can be used as alias, is converted to "message"
}
};
sendFcmMessage(sentmessage).catch(console.error);
with the above code i am getting { code: 403,message: 'SenderId mismatch', status: 'PERMISSION_DENIED',details: [ [Object] ] }
.
Please let me know if anyone have idea of this error. Thank you.