@tonytruong/chatbot-ai-lib
Version:
AI-powered healthcare automation, document parsing, OpenAI, embeddings, RAG, vector DB, Facebook OAuth.
41 lines • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sendTextMessage = sendTextMessage;
exports.sendTemplateMessage = sendTemplateMessage;
const tslib_1 = require("tslib");
const axios_1 = tslib_1.__importDefault(require("axios"));
const logger_1 = require("../../../shared/logger");
function sendTextMessage(recipientId_1, text_1, pageAccessToken_1) {
return tslib_1.__awaiter(this, arguments, void 0, function* (recipientId, text, pageAccessToken, retryCount = 0) {
var _a;
const url = `https://graph.facebook.com/v18.0/me/messages?access_token=${pageAccessToken}`;
const MAX_RETRIES = 2;
try {
const response = yield axios_1.default.post(url, {
recipient: { id: recipientId },
message: { text },
});
logger_1.logger.info(`Message sent to ${recipientId}: ${text.substring(0, 50)}${text.length > 50 ? "..." : ""}`);
return true;
}
catch (err) {
const errorData = ((_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.data) || {
error: { message: err.message },
};
if (errorData.error && errorData.error.code === 190) {
logger_1.logger.error("Facebook token expired or invalid");
}
else if (retryCount < MAX_RETRIES) {
logger_1.logger.info(`Retrying message send (${retryCount + 1}/${MAX_RETRIES})`);
return yield sendTextMessage(recipientId, text, pageAccessToken, retryCount + 1);
}
logger_1.logger.error(`Send message error: ${JSON.stringify(errorData)}`);
return false;
}
});
}
function sendTemplateMessage(recipientId, template) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
});
}
//# sourceMappingURL=MessengerService.js.map