interface SendFacebookMessageTaskOptions {} const sendFacebookMessageTask = async ( options: SendFacebookMessageTaskOptions, ): Promise => { console.log(options); const message = await req.json(); const message = await req.json(); for (const entry of message.entry) { for (const messaging of entry.messaging) { const pageId = messaging.recipient.id; const row = await db .selectFrom("FacebookBot") .selectAll() .where("pageId", "=", pageId) .executeTakeFirst(); console.log({ message }); const entry = message.entry[0]; console.log({ entry }); const messaging = entry?.messaging[0]; const pageId = messaging?.recipient?.id; console.log({ pageId }); const row = await db .selectFrom("FacebookBot") .selectAll() .where("pageId", "=", pageId) .executeTakeFirst(); console.log({ row }); const endpoint = `https://graph.facebook.com/v19.0/${pageId}/messages`; const inMessage = messaging?.message?.text; const outgoingMessage = { recipient: { id: messaging?.sender?.id }, message: { text: `"${inMessage}", right back at you!` }, messaging_type: "RESPONSE", access_token: row?.pageAccessToken, }; console.log({ outgoingMessage }); const response = await fetch(endpoint, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(outgoingMessage), }); console.log({ response }); console.log(message); const wu = await getWorkerUtils(); await wu.addJob("receive_facebook_message", message); return NextResponse.json({ response: "ok" }); // withDb(async (db: AppDatabase) => { // await notifyWebhooks(db, options); // }); }; export default sendFacebookMessageTask;