35 lines
873 B
TypeScript
35 lines
873 B
TypeScript
import { db } from "bridge-common";
|
|
|
|
interface SendFacebookMessageTaskOptions {
|
|
token: string;
|
|
recipient: string;
|
|
text: string;
|
|
}
|
|
|
|
const sendFacebookMessageTask = async (
|
|
options: SendFacebookMessageTaskOptions,
|
|
): Promise<void> => {
|
|
const { token, text, recipient } = options;
|
|
const { pageId, pageAccessToken } = await db
|
|
.selectFrom("FacebookBot")
|
|
.selectAll()
|
|
.where("token", "=", token)
|
|
.executeTakeFirstOrThrow();
|
|
|
|
const endpoint = `https://graph.facebook.com/v19.0/${pageId}/messages`;
|
|
|
|
const outgoingMessage = {
|
|
recipient: { id: recipient },
|
|
message: { text },
|
|
messaging_type: "RESPONSE",
|
|
access_token: pageAccessToken,
|
|
};
|
|
|
|
await fetch(endpoint, {
|
|
method: "POST",
|
|
headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify(outgoingMessage),
|
|
});
|
|
};
|
|
|
|
export default sendFacebookMessageTask;
|