UNPKG

ws3-fca

Version:

A node.js package for automating Facebook Messenger bot, and is one of the most advanced next-generation Facebook Chat API (FCA) by @NethWs3Dev & @ExocoreCommunity

63 lines (53 loc) 1.91 kB
"use strict"; const utils = require('../../../utils'); function formatPreviewResult(data) { if (data.errors) { throw data.errors[0]; } const previewData = data.data?.xma_preview_data; if (!previewData) { throw { error: "Could not generate a preview for this post." }; } return { postID: previewData.post_id, header: previewData.header_title, subtitle: previewData.subtitle_text, title: previewData.title_text, previewImage: previewData.preview_url, favicon: previewData.favicon_url, headerImage: previewData.header_image_url }; } module.exports = function(defaultFuncs, api, ctx) { return async function getPostPreview(postID, callback) { let cb; const returnPromise = new Promise((resolve, reject) => { cb = (err, data) => err ? reject(err) : resolve(data); }); if (typeof callback === 'function') cb = callback; if (!postID) { return cb({ error: "A postID is required to generate a preview." }); } const variables = { shareable_id: postID.toString(), scale: 3, }; const form = { fb_api_caller_class: 'RelayModern', fb_api_req_friendly_name: 'CometXMAProxyShareablePreviewQuery', variables: JSON.stringify(variables), doc_id: '28939050904374351' }; try { const resData = await defaultFuncs .post("https://www.facebook.com/api/graphql/", ctx.jar, form) .then(utils.parseAndCheckLogin(ctx, defaultFuncs)); const result = formatPreviewResult(resData); return cb(null, result); } catch (err) { utils.error("getPostPreview", err); return cb(err); } return returnPromise; }; };