link-stack/apps/bridge-worker/tasks/facebook/send-facebook-message.ts

35 lines
893 B
TypeScript
Raw Normal View History

2024-04-30 13:13:49 +02:00
import { db } from "bridge-common";
interface SendFacebookMessageTaskOptions {
token: string;
message: any;
}
2024-04-21 16:59:50 +02:00
const sendFacebookMessageTask = async (
options: SendFacebookMessageTaskOptions,
): Promise<void> => {
2024-04-30 13:13:49 +02:00
const { token, message } = options;
const { pageId, pageAccessToken } = await db
2024-04-30 11:39:16 +02:00
.selectFrom("FacebookBot")
.selectAll()
2024-04-30 13:13:49 +02:00
.where("token", "=", token)
.executeTakeFirstOrThrow();
2024-04-30 11:39:16 +02:00
const endpoint = `https://graph.facebook.com/v19.0/${pageId}/messages`;
2024-04-30 13:13:49 +02:00
2024-04-30 11:39:16 +02:00
const outgoingMessage = {
2024-04-30 13:13:49 +02:00
recipient: { id: message.recipient },
message: { text: `"${message.text}", right back at you!` },
2024-04-30 11:39:16 +02:00
messaging_type: "RESPONSE",
2024-04-30 13:13:49 +02:00
access_token: pageAccessToken,
2024-04-30 11:39:16 +02:00
};
2024-04-30 13:13:49 +02:00
await fetch(endpoint, {
2024-04-30 11:39:16 +02:00
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(outgoingMessage),
});
2024-04-21 16:59:50 +02:00
};
export default sendFacebookMessageTask;