@tonytruong/chatbot-ai-lib
Version:
AI-powered healthcare automation, document parsing, OpenAI, embeddings, RAG, vector DB, Facebook OAuth.
63 lines • 2.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFacebookAuthUrl = getFacebookAuthUrl;
exports.getFacebookAccessToken = getFacebookAccessToken;
exports.getFacebookPages = getFacebookPages;
exports.subscribePageWebhook = subscribePageWebhook;
exports.unSubscribePageWebhook = unSubscribePageWebhook;
const tslib_1 = require("tslib");
const axios_1 = tslib_1.__importDefault(require("axios"));
const FB_OAUTH_URL = "https://www.facebook.com/v19.0/dialog/oauth";
const FB_TOKEN_URL = "https://graph.facebook.com/v19.0/oauth/access_token";
const FB_PAGES_URL = "https://graph.facebook.com/v19.0/me/accounts";
function getFacebookAuthUrl(config, state) {
const params = new URLSearchParams({
client_id: config.clientId,
redirect_uri: config.redirectUri,
state,
scope: config.scope ||
"pages_show_list,pages_read_engagement,pages_manage_metadata",
response_type: "code",
});
return `${FB_OAUTH_URL}?${params.toString()}`;
}
function getFacebookAccessToken(config, code) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const params = new URLSearchParams({
client_id: config.clientId,
redirect_uri: config.redirectUri,
client_secret: config.clientSecret,
code,
});
const res = yield axios_1.default.get(FB_TOKEN_URL + "?" + params.toString());
return res.data;
});
}
function getFacebookPages(accessToken) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const res = yield axios_1.default.get(FB_PAGES_URL, {
params: { access_token: accessToken },
});
return res.data;
});
}
function subscribePageWebhook(pageId, pageAccessToken, fields) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const url = `https://graph.facebook.com/v19.0/${pageId}/subscribed_apps`;
const params = new URLSearchParams({
subscribed_fields: fields.join(","),
access_token: pageAccessToken,
});
return axios_1.default.post(url, params);
});
}
function unSubscribePageWebhook(pageId, pageAccessToken) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const url = `https://graph.facebook.com/v19.0/${pageId}/subscribed_apps`;
const params = new URLSearchParams({
access_token: pageAccessToken,
});
return axios_1.default.delete(url + '?' + params.toString());
});
}
//# sourceMappingURL=oauth.js.map