OPS: test script
This commit is contained in:
parent
207cdb2ef2
commit
3d290276ef
73
scripts/test_push_ios.ts
Normal file
73
scripts/test_push_ios.ts
Normal file
@ -0,0 +1,73 @@
|
||||
import { GroundControlToMajorTom } from "../src/class/GroundControlToMajorTom";
|
||||
|
||||
const http2 = require("http2");
|
||||
|
||||
if (!process.env.APNS_P8 || !process.env.APPLE_TEAM_ID || !process.env.APNS_P8_KID) {
|
||||
console.error("not all env variables set");
|
||||
process.exit();
|
||||
}
|
||||
|
||||
console.log("APNS_P8_KID =", process.env.APNS_P8_KID);
|
||||
console.log("APPLE_TEAM_ID =", process.env.APPLE_TEAM_ID);
|
||||
console.log("APNS_TOPIC =", process.env.APNS_TOPIC);
|
||||
|
||||
async function _pushToApns(apnsP8: string, token: string, apnsPayload: object, collapseId) {
|
||||
const client = http2.connect("https://api.push.apple.com");
|
||||
client.on("error", (err) => console.error(err));
|
||||
const headers = {
|
||||
":method": "POST",
|
||||
"apns-topic": process.env.APNS_TOPIC,
|
||||
"apns-collapse-id": collapseId,
|
||||
"apns-expiration": Math.floor(+new Date() / 1000 + 3600 * 24),
|
||||
":scheme": "https",
|
||||
":path": "/3/device/" + token,
|
||||
authorization: `bearer ${apnsP8}`,
|
||||
};
|
||||
const request = client.request(headers);
|
||||
|
||||
let responseJson = {};
|
||||
request.on("response", (headers, flags) => {
|
||||
for (const name in headers) {
|
||||
responseJson[name] = headers[name];
|
||||
}
|
||||
});
|
||||
request.on("error", (err) => {
|
||||
console.error("Apple push error:", err);
|
||||
|
||||
const responseJson = {};
|
||||
responseJson["error"] = err;
|
||||
client.close();
|
||||
});
|
||||
|
||||
request.setEncoding("utf8");
|
||||
|
||||
let data = "";
|
||||
request.on("data", (chunk) => {
|
||||
data += chunk;
|
||||
});
|
||||
request.write(JSON.stringify(apnsPayload));
|
||||
request.on("end", () => {
|
||||
if (Object.keys(responseJson).length === 0) {
|
||||
return;
|
||||
}
|
||||
responseJson["data"] = data;
|
||||
client.close();
|
||||
|
||||
console.log(responseJson);
|
||||
});
|
||||
request.end();
|
||||
}
|
||||
|
||||
const apnsPayload = {
|
||||
aps: {
|
||||
badge: 0,
|
||||
alert: {
|
||||
title: "hello",
|
||||
body: "world!",
|
||||
},
|
||||
sound: "default",
|
||||
},
|
||||
data: {},
|
||||
};
|
||||
|
||||
_pushToApns(GroundControlToMajorTom.getApnsJwtToken(), "3a20c2c2c301c8b103ca002107e1e60cb35dd7fc0d3046c0ae2139e6889e16dc", apnsPayload, "collapseId");
|
||||
Loading…
Reference in New Issue
Block a user