link-stack/apps/bridge-worker/tasks/facebook/send-facebook-message.ts
2024-06-05 08:52:41 +02:00

35 lines
885 B
TypeScript

import { db } from "@link-stack/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;