28 lines
714 B
TypeScript
28 lines
714 B
TypeScript
import type { IncomingMessage } from "http";
|
|
import * as https from "https";
|
|
|
|
export interface WechatTokenResponse {
|
|
access_token?: string;
|
|
expires_in?: number;
|
|
errcode?: number;
|
|
errmsg?: string;
|
|
}
|
|
|
|
export function httpsGetJson(url: string): Promise<WechatTokenResponse> {
|
|
return new Promise((resolve, reject) => {
|
|
https.get(url, (res: IncomingMessage) => {
|
|
let data = "";
|
|
res.on("data", (chunk: Buffer) => {
|
|
data += chunk;
|
|
});
|
|
res.on("end", () => {
|
|
try {
|
|
resolve(JSON.parse(data) as WechatTokenResponse);
|
|
} catch (_error) {
|
|
reject(new Error("Invalid JSON from WeChat API"));
|
|
}
|
|
});
|
|
}).on("error", reject);
|
|
});
|
|
}
|