Tones/scripts/expo-push-server.js

39 lines
1 KiB
JavaScript

const express = require('express');
const fetch = require('node-fetch');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.post('/send-notification', async (req, res) => {
const { expoPushToken, title, body, data } = req.body;
if (!expoPushToken) {
return res.status(400).json({ error: 'expoPushToken is required' });
}
try {
const response = await fetch('https://exp.host/--/api/v2/push/send', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Accept-Encoding': 'gzip, deflate',
'Content-Type': 'application/json',
},
body: JSON.stringify({
to: expoPushToken,
sound: 'default',
title,
body,
data,
}),
});
const result = await response.json();
res.json(result);
} catch (err) {
res.status(500).json({ error: err.message });
}
});
const PORT = process.env.PORT || 3001;
app.listen(PORT, () => {
console.log(`Notification server running on port ${PORT}`);
});