bb-fca 2.0.16 → 2.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -480,62 +480,52 @@ function default_1(defaultFuncs, api, ctx) {
480
480
  /**
481
481
  * Search Facebook groups by keyword.
482
482
  *
483
+ * Uses two separate GraphQL queries matching Facebook's browser behavior:
484
+ * - **Initial query** (`cursor === null`): `SearchCometResultsInitialResultsQuery`
485
+ * with `doc_id: '26538723239082496'` — used for the first page of results.
486
+ * - **Paginated query** (`cursor !== null`): `SearchCometResultsPaginatedResultsQuery`
487
+ * with `doc_id: '26131941349797315'` — used for subsequent pages.
488
+ *
483
489
  * @param {string} keyword Search keyword.
484
490
  * @param {{ limit?: number; cursor?: string | null; locale?: string }} [options]
491
+ * - `limit` — Number of results per page (default: `5` for initial, `10` for paginated).
492
+ * - `cursor` — Pagination cursor from a previous result. Pass `null` or omit for the first page.
493
+ * - `locale` — Locale string (default: `'vi_VN'`).
485
494
  * @returns {Promise<{ groups: any[]; cursor: string | null; hasNextPage: boolean }>} Search result and pagination info.
495
+ *
496
+ * @example
497
+ * // First page (uses InitialResultsQuery)
498
+ * const page1 = await api.group.searchGroup('J2TEAM');
499
+ * console.log(page1.groups); // Array of group objects
500
+ * console.log(page1.cursor); // cursor string for next page
501
+ * console.log(page1.hasNextPage); // true if more results available
502
+ *
503
+ * // Next page (uses PaginatedResultsQuery)
504
+ * const page2 = await api.group.searchGroup('J2TEAM', { cursor: page1.cursor });
505
+ *
506
+ * // Custom limit
507
+ * const results = await api.group.searchGroup('cooking', { limit: 20 });
486
508
  */
487
509
  searchGroup: async function (keyword, options = {}) {
488
510
  if (!keyword || typeof keyword !== 'string') {
489
511
  throw new Error('searchGroup: keyword must be a non-empty string.');
490
512
  }
513
+ const isInitial = !options.cursor;
514
+ const defaultLimit = isInitial ? 5 : 10;
491
515
  const limit = typeof options.limit === 'number' && Number.isInteger(options.limit)
492
516
  ? options.limit
493
- : 10;
517
+ : defaultLimit;
494
518
  if (limit <= 0) {
495
519
  throw new Error('searchGroup: options.limit must be a positive integer.');
496
520
  }
497
521
  const locale = options.locale || 'vi_VN';
498
522
  const bsid = createBsid();
499
523
  const tsid = Math.random().toString();
500
- const variables = {
501
- allow_streaming: false,
502
- args: {
503
- callsite: 'comet:groups_search',
504
- config: {
505
- exact_match: false,
506
- high_confidence_config: null,
507
- intercept_config: null,
508
- sts_disambiguation: null,
509
- watch_config: null,
510
- },
511
- context: {
512
- bsid,
513
- tsid,
514
- },
515
- experience: {
516
- client_defined_experiences: ['ADS_PARALLEL_FETCH'],
517
- encoded_server_defined_params: null,
518
- fbid: null,
519
- type: 'GROUPS_TAB_GLOBAL',
520
- },
521
- filters: [],
522
- text: keyword,
523
- },
524
- count: limit,
525
- cursor: options.cursor ?? null,
526
- feedLocation: 'SEARCH',
527
- feedbackSource: 23,
528
- fetch_filters: true,
529
- focusCommentID: null,
530
- locale: null,
531
- privacySelectorRenderLocation: 'COMET_STREAM',
532
- referringStoryRenderLocation: null,
533
- renderLocation: 'search_results_page',
534
- scale: 1,
535
- stream_initial_count: 0,
536
- useDefaultActor: false,
524
+ // Common relay internal providers shared by both queries
525
+ const relayProviders = {
537
526
  __relay_internal__pv__GHLShouldChangeAdIdFieldNamerelayprovider: true,
538
527
  __relay_internal__pv__GHLShouldChangeSponsoredDataFieldNamerelayprovider: true,
528
+ __relay_internal__pv__CometFeedStory_enable_reactor_facepilerelayprovider: false,
539
529
  __relay_internal__pv__CometFeedStory_enable_post_permalink_white_space_clickrelayprovider: false,
540
530
  __relay_internal__pv__CometUFICommentActionLinksRewriteEnabledrelayprovider: false,
541
531
  __relay_internal__pv__CometUFICommentAvatarStickerAnimatedImagerelayprovider: false,
@@ -553,30 +543,112 @@ function default_1(defaultFuncs, api, ctx) {
553
543
  __relay_internal__pv__CometUFISingleLineUFIrelayprovider: false,
554
544
  __relay_internal__pv__CometUFI_dedicated_comment_routable_dialog_gkrelayprovider: true,
555
545
  __relay_internal__pv__FBReelsIFUTileContent_reelsIFUPlayOnHoverrelayprovider: true,
556
- __relay_internal__pv__GroupsCometGYSJFeedItemHeightrelayprovider: 150,
546
+ __relay_internal__pv__GroupsCometGYSJFeedItemHeightrelayprovider: 206,
557
547
  __relay_internal__pv__ShouldEnableBakedInTextStoriesrelayprovider: false,
558
548
  __relay_internal__pv__StoriesShouldIncludeFbNotesrelayprovider: false,
559
549
  };
550
+ // Build variables based on query type
551
+ const variables = isInitial
552
+ ? {
553
+ // InitialResultsQuery: minimal variables matching browser behavior
554
+ count: limit,
555
+ allow_streaming: false,
556
+ args: {
557
+ callsite: 'comet:groups_search',
558
+ config: {
559
+ exact_match: false,
560
+ high_confidence_config: null,
561
+ intercept_config: null,
562
+ sts_disambiguation: null,
563
+ watch_config: null,
564
+ },
565
+ context: {
566
+ bsid,
567
+ tsid,
568
+ },
569
+ experience: {
570
+ client_defined_experiences: ['ADS_PARALLEL_FETCH'],
571
+ encoded_server_defined_params: null,
572
+ fbid: null,
573
+ type: 'GROUPS_TAB_GLOBAL',
574
+ },
575
+ filters: [],
576
+ text: keyword,
577
+ },
578
+ cursor: null,
579
+ feedbackSource: 23,
580
+ fetch_filters: true,
581
+ renderLocation: 'search_results_page',
582
+ scale: 1,
583
+ stream_initial_count: 0,
584
+ useDefaultActor: false,
585
+ ...relayProviders,
586
+ }
587
+ : {
588
+ // PaginatedResultsQuery: includes additional fields for pagination
589
+ allow_streaming: false,
590
+ args: {
591
+ callsite: 'comet:groups_search',
592
+ config: {
593
+ exact_match: false,
594
+ high_confidence_config: null,
595
+ intercept_config: null,
596
+ sts_disambiguation: null,
597
+ watch_config: null,
598
+ },
599
+ context: {
600
+ bsid,
601
+ tsid,
602
+ },
603
+ experience: {
604
+ client_defined_experiences: ['ADS_PARALLEL_FETCH'],
605
+ encoded_server_defined_params: null,
606
+ fbid: null,
607
+ type: 'GROUPS_TAB_GLOBAL',
608
+ },
609
+ filters: [],
610
+ text: keyword,
611
+ },
612
+ count: limit,
613
+ cursor: options.cursor,
614
+ feedLocation: 'SEARCH',
615
+ feedbackSource: 23,
616
+ fetch_filters: true,
617
+ focusCommentID: null,
618
+ locale: null,
619
+ privacySelectorRenderLocation: 'COMET_STREAM',
620
+ referringStoryRenderLocation: null,
621
+ renderLocation: 'search_results_page',
622
+ scale: 1,
623
+ stream_initial_count: 0,
624
+ useDefaultActor: false,
625
+ ...relayProviders,
626
+ };
627
+ // Select friendly name and doc_id based on query type
628
+ const friendlyName = isInitial
629
+ ? 'SearchCometResultsInitialResultsQuery'
630
+ : 'SearchCometResultsPaginatedResultsQuery';
631
+ const docId = isInitial ? '26538723239082496' : '26131941349797315';
560
632
  const form = {
561
633
  av: ctx.i_userID || ctx.userID,
562
634
  __user: ctx.i_userID || ctx.userID,
563
635
  __a: '1',
636
+ __comet_req: '15',
564
637
  fb_dtsg: ctx.fb_dtsg,
565
638
  jazoest: ctx.jazoest,
566
639
  lsd: ctx.lsd || '',
567
- locale,
568
640
  fb_api_caller_class: 'RelayModern',
569
- fb_api_req_friendly_name: 'SearchCometResultsPaginatedResultsQuery',
641
+ fb_api_req_friendly_name: friendlyName,
570
642
  server_timestamps: 'true',
571
643
  variables: JSON.stringify(variables),
572
- doc_id: '26131941349797315',
644
+ doc_id: docId,
573
645
  };
574
646
  const customHeader = {
575
- 'x-fb-friendly-name': 'SearchCometResultsPaginatedResultsQuery',
647
+ 'x-fb-friendly-name': friendlyName,
576
648
  'x-fb-lsd': ctx.lsd || '',
577
649
  'x-asbd-id': '359341',
578
650
  origin: 'https://www.facebook.com',
579
- referer: `https://www.facebook.com/groups/search/groups_home?q=${encodeURIComponent(keyword)}&locale=${encodeURIComponent(locale)}`,
651
+ referer: `https://www.facebook.com/groups/search/groups_home?q=${encodeURIComponent(keyword)}`,
580
652
  };
581
653
  const res = await utils.post('https://www.facebook.com/api/graphql/', ctx.jar, form, ctx.globalOptions, ctx, customHeader);
582
654
  const data = parseResponseBody(res.body);
@@ -1 +1 @@
1
- {"version":3,"file":"group.js","sourceRoot":"","sources":["../../../../src/deltas/apis/posting/group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../../../src/deltas/apis/posting/group.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = default_1;
4
+ const utils = require("../../../utils");
5
+ /**
6
+ * Extracts the numeric post ID from a Facebook post URL by fetching the page HTML.
7
+ * Supports formats: full URL, /posts/pfbid..., /posts/numericID, permalink.php, etc.
8
+ * @param {object} defaultFuncs - The default functions for making API requests.
9
+ * @param {object} ctx - The context object.
10
+ * @param {string} postUrl - The Facebook post URL.
11
+ * @returns {Promise<string>} The numeric post ID.
12
+ */
13
+ async function resolvePostID(defaultFuncs, ctx, postUrl) {
14
+ // Build fetch URL
15
+ let fetchUrl;
16
+ if (postUrl.startsWith('http://') || postUrl.startsWith('https://')) {
17
+ fetchUrl = postUrl;
18
+ }
19
+ else if (postUrl.startsWith('/')) {
20
+ fetchUrl = `https://www.facebook.com${postUrl}`;
21
+ }
22
+ else {
23
+ fetchUrl = `https://www.facebook.com/${postUrl}`;
24
+ }
25
+ const resData = await utils.get(fetchUrl, ctx.jar, {}, ctx.globalOptions, ctx);
26
+ const html = resData.body.toString();
27
+ // Try to find post_id from the HTML JSON data
28
+ const scriptMatches = html.match(/<script type="application\/json"\s+data-content-len="\d+"\s+data-sjs>(.*?)<\/script>/gs);
29
+ if (!scriptMatches) {
30
+ throw new Error('Could not parse post HTML to find post ID.');
31
+ }
32
+ let postID = null;
33
+ // Deep search helper
34
+ function deepFind(obj, key) {
35
+ if (!obj || typeof obj !== 'object')
36
+ return null;
37
+ for (const k of Object.keys(obj)) {
38
+ if (k === key && typeof obj[k] === 'string' && obj[k].length > 0) {
39
+ return obj[k];
40
+ }
41
+ const found = deepFind(obj[k], key);
42
+ if (found)
43
+ return found;
44
+ }
45
+ return null;
46
+ }
47
+ for (const scriptMatch of scriptMatches) {
48
+ try {
49
+ const jsonMatch = scriptMatch.match(/<script[^>]*>(.*?)<\/script>/s);
50
+ if (!jsonMatch)
51
+ continue;
52
+ const jsonData = JSON.parse(jsonMatch[1]);
53
+ const found = deepFind(jsonData, 'post_id');
54
+ if (found) {
55
+ postID = found;
56
+ break;
57
+ }
58
+ }
59
+ catch (e) {
60
+ continue;
61
+ }
62
+ }
63
+ if (!postID) {
64
+ // Fallback: try to extract from URL patterns
65
+ // e.g. /posts/3228319350779313:415318807385347
66
+ const urlMatch = postUrl.match(/posts\/(\d+)/);
67
+ if (urlMatch) {
68
+ postID = urlMatch[1];
69
+ }
70
+ }
71
+ if (!postID) {
72
+ // Fallback: try story_fbid from permalink.php
73
+ const storyMatch = postUrl.match(/story_fbid=(\d+)/);
74
+ if (storyMatch) {
75
+ postID = storyMatch[1];
76
+ }
77
+ }
78
+ if (!postID) {
79
+ throw new Error('Could not resolve post ID from the provided URL.');
80
+ }
81
+ return postID;
82
+ }
83
+ /**
84
+ * Submits the reply comment to the GraphQL endpoint.
85
+ * @param {object} defaultFuncs - The default functions.
86
+ * @param {object} ctx - The context object.
87
+ * @param {object} variables - The fully constructed variables object.
88
+ * @returns {Promise<object>} A promise that resolves with the comment info.
89
+ */
90
+ async function submitReply(defaultFuncs, ctx, variables) {
91
+ const res = await defaultFuncs
92
+ .post('https://www.facebook.com/api/graphql/', ctx.jar, {
93
+ fb_api_caller_class: 'RelayModern',
94
+ fb_api_req_friendly_name: 'useCometUFICreateCommentMutation',
95
+ variables: JSON.stringify(variables),
96
+ server_timestamps: true,
97
+ doc_id: '26613344231661138',
98
+ })
99
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs));
100
+ if (res.errors) {
101
+ throw res;
102
+ }
103
+ const commentEdge = res.data?.comment_create?.feedback_comment_edge;
104
+ if (!commentEdge) {
105
+ throw new Error('Unexpected response structure: missing comment_create.feedback_comment_edge');
106
+ }
107
+ return {
108
+ id: commentEdge.node.id,
109
+ url: commentEdge.node.feedback?.url || null,
110
+ count: res.data.comment_create.feedback?.total_comment_count || 0,
111
+ };
112
+ }
113
+ /**
114
+ * Creates a reply to a comment on a Facebook post.
115
+ *
116
+ * @param {string} postUrl - The URL of the Facebook post (e.g. https://www.facebook.com/user/posts/123456789).
117
+ * @param {string} commentID - The numeric ID of the comment to reply to.
118
+ * @param {string} text - The reply text content.
119
+ * @param {function} [callback] - Optional callback function (err, result).
120
+ * @returns {Promise<object>} A promise that resolves with the new reply's information:
121
+ * - id: The GraphQL ID of the new reply.
122
+ * - url: The URL of the reply (if available).
123
+ * - count: The total comment count on the post.
124
+ *
125
+ * @example
126
+ * // Using async/await
127
+ * const result = await api.replyComment(
128
+ * 'https://www.facebook.com/user/posts/3228319350779313',
129
+ * '3873188569648912',
130
+ * 'Cảm ơn bạn!'
131
+ * );
132
+ * console.log(result.id);
133
+ *
134
+ * // Using callback
135
+ * api.replyComment(url, commentId, 'Hello!', (err, result) => {
136
+ * if (err) console.error(err);
137
+ * else console.log(result);
138
+ * });
139
+ */
140
+ function default_1(defaultFuncs, api, ctx) {
141
+ return async function replyComment(postUrl, commentID, text, callback) {
142
+ let cb;
143
+ const returnPromise = new Promise((resolve, reject) => {
144
+ cb = (error, info) => (info ? resolve(info) : reject(error));
145
+ });
146
+ if (typeof callback === 'function') {
147
+ cb = callback;
148
+ }
149
+ // ── Validate inputs ──────────────────────────────────────────────
150
+ if (!postUrl || typeof postUrl !== 'string') {
151
+ const error = 'postUrl must be a non-empty string (Facebook post URL).';
152
+ utils.error('replyComment', error);
153
+ return cb(error);
154
+ }
155
+ if (!commentID || typeof commentID !== 'string') {
156
+ const error = 'commentID must be a non-empty string (numeric comment ID).';
157
+ utils.error('replyComment', error);
158
+ return cb(error);
159
+ }
160
+ if (!text || typeof text !== 'string') {
161
+ const error = 'text must be a non-empty string (reply content).';
162
+ utils.error('replyComment', error);
163
+ return cb(error);
164
+ }
165
+ try {
166
+ // ── Step 1: Resolve the numeric post ID from the URL ─────────
167
+ const postID = await resolvePostID(defaultFuncs, ctx, postUrl);
168
+ utils.log('replyComment', `Resolved postID: ${postID}`);
169
+ // ── Step 2: Build the correct base64 IDs ─────────────────────
170
+ // feedback_id = base64("feedback:{postID}_{commentID}")
171
+ const feedbackIdRaw = `feedback:${postID}_${commentID}`;
172
+ const feedbackIdBase64 = Buffer.from(feedbackIdRaw).toString('base64');
173
+ // reply_comment_parent_fbid = base64("comment:{postID}_{commentID}")
174
+ const replyParentRaw = `comment:${postID}_${commentID}`;
175
+ const replyParentBase64 = Buffer.from(replyParentRaw).toString('base64');
176
+ // ── Step 3: Build the variables payload ──────────────────────
177
+ const variables = {
178
+ feedLocation: 'POST_PERMALINK_DIALOG',
179
+ feedbackSource: 2,
180
+ groupID: null,
181
+ input: {
182
+ actor_id: ctx.userID,
183
+ client_mutation_id: Math.round(Math.random() * 19).toString(),
184
+ attachments: null,
185
+ feedback_id: feedbackIdBase64,
186
+ formatting_style: null,
187
+ message: {
188
+ ranges: [],
189
+ text: text,
190
+ },
191
+ reply_comment_parent_fbid: replyParentBase64,
192
+ reply_target_clicked: true,
193
+ attribution_id_v2: `CometSinglePostDialogRoot.react,comet.post.single_dialog,via_cold_start,${Date.now()},846664,,,`,
194
+ vod_video_timestamp: null,
195
+ is_tracking_encrypted: true,
196
+ tracking: [],
197
+ feedback_source: 'OBJECT',
198
+ idempotence_token: 'client:' + utils.getGUID(),
199
+ session_id: utils.getGUID(),
200
+ downstream_share_session_id: utils.getGUID(),
201
+ downstream_share_session_origin_uri: postUrl,
202
+ downstream_share_session_start_time: Date.now().toString(),
203
+ },
204
+ inviteShortLinkKey: null,
205
+ renderLocation: null,
206
+ scale: 1,
207
+ useDefaultActor: false,
208
+ focusCommentID: null,
209
+ __relay_internal__pv__groups_comet_use_glvrelayprovider: false,
210
+ __relay_internal__pv__CometUFICommentActionLinksRewriteEnabledrelayprovider: false,
211
+ __relay_internal__pv__CometUFICommentAvatarStickerAnimatedImagerelayprovider: false,
212
+ __relay_internal__pv__IsWorkUserrelayprovider: false,
213
+ __relay_internal__pv__CometUFICommentAutoTranslationTyperelayprovider: 'ORIGINAL',
214
+ };
215
+ // ── Step 4: Submit the reply ──────────────────────────────────
216
+ const info = await submitReply(defaultFuncs, ctx, variables);
217
+ utils.log('replyComment', `Reply created successfully: ${info.id}`);
218
+ cb(null, info);
219
+ }
220
+ catch (err) {
221
+ utils.error('replyComment', err);
222
+ cb(err);
223
+ }
224
+ return returnPromise;
225
+ };
226
+ }
227
+ //# sourceMappingURL=replyComment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replyComment.js","sourceRoot":"","sources":["../../../../src/deltas/apis/posting/replyComment.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -705,6 +705,21 @@ export interface API {
705
705
  callback?: Callback<CommentResult>,
706
706
  ): Promise<CommentResult>;
707
707
 
708
+ /**
709
+ * Reply to a comment on a Facebook post.
710
+ * @param postUrl - The URL of the Facebook post.
711
+ * @param commentID - The numeric ID of the comment to reply to.
712
+ * @param text - The reply text content.
713
+ * @param callback - Optional callback function.
714
+ * @returns A promise that resolves with the new reply's information.
715
+ */
716
+ replyComment(
717
+ postUrl: string,
718
+ commentID: string,
719
+ text: string,
720
+ callback?: Callback<CommentResult>,
721
+ ): Promise<CommentResult>;
722
+
708
723
  /** Share a Facebook post. */
709
724
  share(
710
725
  text: string,
@@ -61,9 +61,31 @@ export default function (defaultFuncs: any, api: any, ctx: any): {
61
61
  /**
62
62
  * Search Facebook groups by keyword.
63
63
  *
64
+ * Uses two separate GraphQL queries matching Facebook's browser behavior:
65
+ * - **Initial query** (`cursor === null`): `SearchCometResultsInitialResultsQuery`
66
+ * with `doc_id: '26538723239082496'` — used for the first page of results.
67
+ * - **Paginated query** (`cursor !== null`): `SearchCometResultsPaginatedResultsQuery`
68
+ * with `doc_id: '26131941349797315'` — used for subsequent pages.
69
+ *
64
70
  * @param {string} keyword Search keyword.
65
71
  * @param {{ limit?: number; cursor?: string | null; locale?: string }} [options]
72
+ * - `limit` — Number of results per page (default: `5` for initial, `10` for paginated).
73
+ * - `cursor` — Pagination cursor from a previous result. Pass `null` or omit for the first page.
74
+ * - `locale` — Locale string (default: `'vi_VN'`).
66
75
  * @returns {Promise<{ groups: any[]; cursor: string | null; hasNextPage: boolean }>} Search result and pagination info.
76
+ *
77
+ * @example
78
+ * // First page (uses InitialResultsQuery)
79
+ * const page1 = await api.group.searchGroup('J2TEAM');
80
+ * console.log(page1.groups); // Array of group objects
81
+ * console.log(page1.cursor); // cursor string for next page
82
+ * console.log(page1.hasNextPage); // true if more results available
83
+ *
84
+ * // Next page (uses PaginatedResultsQuery)
85
+ * const page2 = await api.group.searchGroup('J2TEAM', { cursor: page1.cursor });
86
+ *
87
+ * // Custom limit
88
+ * const results = await api.group.searchGroup('cooking', { limit: 20 });
67
89
  */
68
90
  searchGroup: (keyword: string, options?: {
69
91
  limit?: number;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Creates a reply to a comment on a Facebook post.
3
+ *
4
+ * @param {string} postUrl - The URL of the Facebook post (e.g. https://www.facebook.com/user/posts/123456789).
5
+ * @param {string} commentID - The numeric ID of the comment to reply to.
6
+ * @param {string} text - The reply text content.
7
+ * @param {function} [callback] - Optional callback function (err, result).
8
+ * @returns {Promise<object>} A promise that resolves with the new reply's information:
9
+ * - id: The GraphQL ID of the new reply.
10
+ * - url: The URL of the reply (if available).
11
+ * - count: The total comment count on the post.
12
+ *
13
+ * @example
14
+ * // Using async/await
15
+ * const result = await api.replyComment(
16
+ * 'https://www.facebook.com/user/posts/3228319350779313',
17
+ * '3873188569648912',
18
+ * 'Cảm ơn bạn!'
19
+ * );
20
+ * console.log(result.id);
21
+ *
22
+ * // Using callback
23
+ * api.replyComment(url, commentId, 'Hello!', (err, result) => {
24
+ * if (err) console.error(err);
25
+ * else console.log(result);
26
+ * });
27
+ */
28
+ export default function (defaultFuncs: any, api: any, ctx: any): (postUrl: string, commentID: string, text: string, callback?: Function) => Promise<any>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bb-fca",
3
- "version": "2.0.16",
3
+ "version": "2.0.18",
4
4
  "description": "BB-FCA is a powerful and user-friendly Facebook Chat API wrapper for Node.js, designed to simplify the process of creating chatbots and automating interactions on Facebook Messenger. With BB-FCA, developers can easily send messages, manage conversations, and interact with the Facebook Messenger platform using a simple and intuitive API.",
5
5
  "main": "dist/core/client.js",
6
6
  "types": "dist/index.d.ts",
@@ -559,9 +559,31 @@ export default function(defaultFuncs: any, api: any, ctx: any) {
559
559
  /**
560
560
  * Search Facebook groups by keyword.
561
561
  *
562
+ * Uses two separate GraphQL queries matching Facebook's browser behavior:
563
+ * - **Initial query** (`cursor === null`): `SearchCometResultsInitialResultsQuery`
564
+ * with `doc_id: '26538723239082496'` — used for the first page of results.
565
+ * - **Paginated query** (`cursor !== null`): `SearchCometResultsPaginatedResultsQuery`
566
+ * with `doc_id: '26131941349797315'` — used for subsequent pages.
567
+ *
562
568
  * @param {string} keyword Search keyword.
563
569
  * @param {{ limit?: number; cursor?: string | null; locale?: string }} [options]
570
+ * - `limit` — Number of results per page (default: `5` for initial, `10` for paginated).
571
+ * - `cursor` — Pagination cursor from a previous result. Pass `null` or omit for the first page.
572
+ * - `locale` — Locale string (default: `'vi_VN'`).
564
573
  * @returns {Promise<{ groups: any[]; cursor: string | null; hasNextPage: boolean }>} Search result and pagination info.
574
+ *
575
+ * @example
576
+ * // First page (uses InitialResultsQuery)
577
+ * const page1 = await api.group.searchGroup('J2TEAM');
578
+ * console.log(page1.groups); // Array of group objects
579
+ * console.log(page1.cursor); // cursor string for next page
580
+ * console.log(page1.hasNextPage); // true if more results available
581
+ *
582
+ * // Next page (uses PaginatedResultsQuery)
583
+ * const page2 = await api.group.searchGroup('J2TEAM', { cursor: page1.cursor });
584
+ *
585
+ * // Custom limit
586
+ * const results = await api.group.searchGroup('cooking', { limit: 20 });
565
587
  */
566
588
  searchGroup: async function(
567
589
  keyword: string,
@@ -571,10 +593,13 @@ export default function(defaultFuncs: any, api: any, ctx: any) {
571
593
  throw new Error('searchGroup: keyword must be a non-empty string.');
572
594
  }
573
595
 
596
+ const isInitial = !options.cursor;
597
+ const defaultLimit = isInitial ? 5 : 10;
598
+
574
599
  const limit =
575
600
  typeof options.limit === 'number' && Number.isInteger(options.limit)
576
601
  ? options.limit
577
- : 10;
602
+ : defaultLimit;
578
603
 
579
604
  if (limit <= 0) {
580
605
  throw new Error(
@@ -586,45 +611,11 @@ export default function(defaultFuncs: any, api: any, ctx: any) {
586
611
  const bsid = createBsid();
587
612
  const tsid = Math.random().toString();
588
613
 
589
- const variables = {
590
- allow_streaming: false,
591
- args: {
592
- callsite: 'comet:groups_search',
593
- config: {
594
- exact_match: false,
595
- high_confidence_config: null,
596
- intercept_config: null,
597
- sts_disambiguation: null,
598
- watch_config: null,
599
- },
600
- context: {
601
- bsid,
602
- tsid,
603
- },
604
- experience: {
605
- client_defined_experiences: ['ADS_PARALLEL_FETCH'],
606
- encoded_server_defined_params: null,
607
- fbid: null,
608
- type: 'GROUPS_TAB_GLOBAL',
609
- },
610
- filters: [],
611
- text: keyword,
612
- },
613
- count: limit,
614
- cursor: options.cursor ?? null,
615
- feedLocation: 'SEARCH',
616
- feedbackSource: 23,
617
- fetch_filters: true,
618
- focusCommentID: null,
619
- locale: null,
620
- privacySelectorRenderLocation: 'COMET_STREAM',
621
- referringStoryRenderLocation: null,
622
- renderLocation: 'search_results_page',
623
- scale: 1,
624
- stream_initial_count: 0,
625
- useDefaultActor: false,
614
+ // Common relay internal providers shared by both queries
615
+ const relayProviders = {
626
616
  __relay_internal__pv__GHLShouldChangeAdIdFieldNamerelayprovider: true,
627
617
  __relay_internal__pv__GHLShouldChangeSponsoredDataFieldNamerelayprovider: true,
618
+ __relay_internal__pv__CometFeedStory_enable_reactor_facepilerelayprovider: false,
628
619
  __relay_internal__pv__CometFeedStory_enable_post_permalink_white_space_clickrelayprovider: false,
629
620
  __relay_internal__pv__CometUFICommentActionLinksRewriteEnabledrelayprovider: false,
630
621
  __relay_internal__pv__CometUFICommentAvatarStickerAnimatedImagerelayprovider: false,
@@ -643,34 +634,119 @@ export default function(defaultFuncs: any, api: any, ctx: any) {
643
634
  __relay_internal__pv__CometUFISingleLineUFIrelayprovider: false,
644
635
  __relay_internal__pv__CometUFI_dedicated_comment_routable_dialog_gkrelayprovider: true,
645
636
  __relay_internal__pv__FBReelsIFUTileContent_reelsIFUPlayOnHoverrelayprovider: true,
646
- __relay_internal__pv__GroupsCometGYSJFeedItemHeightrelayprovider: 150,
637
+ __relay_internal__pv__GroupsCometGYSJFeedItemHeightrelayprovider: 206,
647
638
  __relay_internal__pv__ShouldEnableBakedInTextStoriesrelayprovider: false,
648
639
  __relay_internal__pv__StoriesShouldIncludeFbNotesrelayprovider: false,
649
640
  };
650
641
 
651
- const form = {
642
+ // Build variables based on query type
643
+ const variables: Record<string, any> = isInitial
644
+ ? {
645
+ // InitialResultsQuery: minimal variables matching browser behavior
646
+ count: limit,
647
+ allow_streaming: false,
648
+ args: {
649
+ callsite: 'comet:groups_search',
650
+ config: {
651
+ exact_match: false,
652
+ high_confidence_config: null,
653
+ intercept_config: null,
654
+ sts_disambiguation: null,
655
+ watch_config: null,
656
+ },
657
+ context: {
658
+ bsid,
659
+ tsid,
660
+ },
661
+ experience: {
662
+ client_defined_experiences: ['ADS_PARALLEL_FETCH'],
663
+ encoded_server_defined_params: null,
664
+ fbid: null,
665
+ type: 'GROUPS_TAB_GLOBAL',
666
+ },
667
+ filters: [],
668
+ text: keyword,
669
+ },
670
+ cursor: null,
671
+ feedbackSource: 23,
672
+ fetch_filters: true,
673
+ renderLocation: 'search_results_page',
674
+ scale: 1,
675
+ stream_initial_count: 0,
676
+ useDefaultActor: false,
677
+ ...relayProviders,
678
+ }
679
+ : {
680
+ // PaginatedResultsQuery: includes additional fields for pagination
681
+ allow_streaming: false,
682
+ args: {
683
+ callsite: 'comet:groups_search',
684
+ config: {
685
+ exact_match: false,
686
+ high_confidence_config: null,
687
+ intercept_config: null,
688
+ sts_disambiguation: null,
689
+ watch_config: null,
690
+ },
691
+ context: {
692
+ bsid,
693
+ tsid,
694
+ },
695
+ experience: {
696
+ client_defined_experiences: ['ADS_PARALLEL_FETCH'],
697
+ encoded_server_defined_params: null,
698
+ fbid: null,
699
+ type: 'GROUPS_TAB_GLOBAL',
700
+ },
701
+ filters: [],
702
+ text: keyword,
703
+ },
704
+ count: limit,
705
+ cursor: options.cursor,
706
+ feedLocation: 'SEARCH',
707
+ feedbackSource: 23,
708
+ fetch_filters: true,
709
+ focusCommentID: null,
710
+ locale: null,
711
+ privacySelectorRenderLocation: 'COMET_STREAM',
712
+ referringStoryRenderLocation: null,
713
+ renderLocation: 'search_results_page',
714
+ scale: 1,
715
+ stream_initial_count: 0,
716
+ useDefaultActor: false,
717
+ ...relayProviders,
718
+ };
719
+
720
+ // Select friendly name and doc_id based on query type
721
+ const friendlyName = isInitial
722
+ ? 'SearchCometResultsInitialResultsQuery'
723
+ : 'SearchCometResultsPaginatedResultsQuery';
724
+
725
+ const docId = isInitial ? '26538723239082496' : '26131941349797315';
726
+
727
+ const form: Record<string, string> = {
652
728
  av: ctx.i_userID || ctx.userID,
653
729
  __user: ctx.i_userID || ctx.userID,
654
730
  __a: '1',
731
+ __comet_req: '15',
655
732
  fb_dtsg: ctx.fb_dtsg,
656
733
  jazoest: ctx.jazoest,
657
734
  lsd: ctx.lsd || '',
658
- locale,
659
735
  fb_api_caller_class: 'RelayModern',
660
- fb_api_req_friendly_name: 'SearchCometResultsPaginatedResultsQuery',
736
+ fb_api_req_friendly_name: friendlyName,
661
737
  server_timestamps: 'true',
662
738
  variables: JSON.stringify(variables),
663
- doc_id: '26131941349797315',
739
+ doc_id: docId,
664
740
  };
665
741
 
666
742
  const customHeader = {
667
- 'x-fb-friendly-name': 'SearchCometResultsPaginatedResultsQuery',
743
+ 'x-fb-friendly-name': friendlyName,
668
744
  'x-fb-lsd': ctx.lsd || '',
669
745
  'x-asbd-id': '359341',
670
746
  origin: 'https://www.facebook.com',
671
747
  referer: `https://www.facebook.com/groups/search/groups_home?q=${encodeURIComponent(
672
748
  keyword,
673
- )}&locale=${encodeURIComponent(locale)}`,
749
+ )}`,
674
750
  };
675
751
 
676
752
  const res = await utils.post(
@@ -0,0 +1,261 @@
1
+ import utils = require('../../../utils');
2
+
3
+ /**
4
+ * Extracts the numeric post ID from a Facebook post URL by fetching the page HTML.
5
+ * Supports formats: full URL, /posts/pfbid..., /posts/numericID, permalink.php, etc.
6
+ * @param {object} defaultFuncs - The default functions for making API requests.
7
+ * @param {object} ctx - The context object.
8
+ * @param {string} postUrl - The Facebook post URL.
9
+ * @returns {Promise<string>} The numeric post ID.
10
+ */
11
+ async function resolvePostID(
12
+ defaultFuncs,
13
+ ctx,
14
+ postUrl: string,
15
+ ): Promise<string> {
16
+ // Build fetch URL
17
+ let fetchUrl: string;
18
+ if (postUrl.startsWith('http://') || postUrl.startsWith('https://')) {
19
+ fetchUrl = postUrl;
20
+ } else if (postUrl.startsWith('/')) {
21
+ fetchUrl = `https://www.facebook.com${postUrl}`;
22
+ } else {
23
+ fetchUrl = `https://www.facebook.com/${postUrl}`;
24
+ }
25
+
26
+ const resData = await utils.get(
27
+ fetchUrl,
28
+ ctx.jar,
29
+ {},
30
+ ctx.globalOptions,
31
+ ctx,
32
+ );
33
+ const html = resData.body.toString();
34
+
35
+ // Try to find post_id from the HTML JSON data
36
+ const scriptMatches = html.match(
37
+ /<script type="application\/json"\s+data-content-len="\d+"\s+data-sjs>(.*?)<\/script>/gs,
38
+ );
39
+
40
+ if (!scriptMatches) {
41
+ throw new Error('Could not parse post HTML to find post ID.');
42
+ }
43
+
44
+ let postID: string | null = null;
45
+
46
+ // Deep search helper
47
+ function deepFind(obj: any, key: string): string | null {
48
+ if (!obj || typeof obj !== 'object') return null;
49
+ for (const k of Object.keys(obj)) {
50
+ if (k === key && typeof obj[k] === 'string' && obj[k].length > 0) {
51
+ return obj[k];
52
+ }
53
+ const found = deepFind(obj[k], key);
54
+ if (found) return found;
55
+ }
56
+ return null;
57
+ }
58
+
59
+ for (const scriptMatch of scriptMatches) {
60
+ try {
61
+ const jsonMatch = scriptMatch.match(/<script[^>]*>(.*?)<\/script>/s);
62
+ if (!jsonMatch) continue;
63
+ const jsonData = JSON.parse(jsonMatch[1]);
64
+ const found = deepFind(jsonData, 'post_id');
65
+ if (found) {
66
+ postID = found;
67
+ break;
68
+ }
69
+ } catch (e) {
70
+ continue;
71
+ }
72
+ }
73
+
74
+ if (!postID) {
75
+ // Fallback: try to extract from URL patterns
76
+ // e.g. /posts/3228319350779313:415318807385347
77
+ const urlMatch = postUrl.match(/posts\/(\d+)/);
78
+ if (urlMatch) {
79
+ postID = urlMatch[1];
80
+ }
81
+ }
82
+
83
+ if (!postID) {
84
+ // Fallback: try story_fbid from permalink.php
85
+ const storyMatch = postUrl.match(/story_fbid=(\d+)/);
86
+ if (storyMatch) {
87
+ postID = storyMatch[1];
88
+ }
89
+ }
90
+
91
+ if (!postID) {
92
+ throw new Error('Could not resolve post ID from the provided URL.');
93
+ }
94
+
95
+ return postID;
96
+ }
97
+
98
+ /**
99
+ * Submits the reply comment to the GraphQL endpoint.
100
+ * @param {object} defaultFuncs - The default functions.
101
+ * @param {object} ctx - The context object.
102
+ * @param {object} variables - The fully constructed variables object.
103
+ * @returns {Promise<object>} A promise that resolves with the comment info.
104
+ */
105
+ async function submitReply(defaultFuncs, ctx, variables) {
106
+ const res = await defaultFuncs
107
+ .post('https://www.facebook.com/api/graphql/', ctx.jar, {
108
+ fb_api_caller_class: 'RelayModern',
109
+ fb_api_req_friendly_name: 'useCometUFICreateCommentMutation',
110
+ variables: JSON.stringify(variables),
111
+ server_timestamps: true,
112
+ doc_id: '26613344231661138',
113
+ })
114
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs));
115
+
116
+ if (res.errors) {
117
+ throw res;
118
+ }
119
+
120
+ const commentEdge = res.data?.comment_create?.feedback_comment_edge;
121
+ if (!commentEdge) {
122
+ throw new Error(
123
+ 'Unexpected response structure: missing comment_create.feedback_comment_edge',
124
+ );
125
+ }
126
+
127
+ return {
128
+ id: commentEdge.node.id,
129
+ url: commentEdge.node.feedback?.url || null,
130
+ count: res.data.comment_create.feedback?.total_comment_count || 0,
131
+ };
132
+ }
133
+
134
+ /**
135
+ * Creates a reply to a comment on a Facebook post.
136
+ *
137
+ * @param {string} postUrl - The URL of the Facebook post (e.g. https://www.facebook.com/user/posts/123456789).
138
+ * @param {string} commentID - The numeric ID of the comment to reply to.
139
+ * @param {string} text - The reply text content.
140
+ * @param {function} [callback] - Optional callback function (err, result).
141
+ * @returns {Promise<object>} A promise that resolves with the new reply's information:
142
+ * - id: The GraphQL ID of the new reply.
143
+ * - url: The URL of the reply (if available).
144
+ * - count: The total comment count on the post.
145
+ *
146
+ * @example
147
+ * // Using async/await
148
+ * const result = await api.replyComment(
149
+ * 'https://www.facebook.com/user/posts/3228319350779313',
150
+ * '3873188569648912',
151
+ * 'Cảm ơn bạn!'
152
+ * );
153
+ * console.log(result.id);
154
+ *
155
+ * // Using callback
156
+ * api.replyComment(url, commentId, 'Hello!', (err, result) => {
157
+ * if (err) console.error(err);
158
+ * else console.log(result);
159
+ * });
160
+ */
161
+ export default function(defaultFuncs: any, api: any, ctx: any) {
162
+ return async function replyComment(
163
+ postUrl: string,
164
+ commentID: string,
165
+ text: string,
166
+ callback?: Function,
167
+ ) {
168
+ let cb: (error: any, info?: any) => void;
169
+ const returnPromise = new Promise<any>((resolve, reject) => {
170
+ cb = (error, info) => (info ? resolve(info) : reject(error));
171
+ });
172
+
173
+ if (typeof callback === 'function') {
174
+ cb = callback as any;
175
+ }
176
+
177
+ // ── Validate inputs ──────────────────────────────────────────────
178
+ if (!postUrl || typeof postUrl !== 'string') {
179
+ const error = 'postUrl must be a non-empty string (Facebook post URL).';
180
+ utils.error('replyComment', error);
181
+ return cb(error);
182
+ }
183
+ if (!commentID || typeof commentID !== 'string') {
184
+ const error =
185
+ 'commentID must be a non-empty string (numeric comment ID).';
186
+ utils.error('replyComment', error);
187
+ return cb(error);
188
+ }
189
+ if (!text || typeof text !== 'string') {
190
+ const error = 'text must be a non-empty string (reply content).';
191
+ utils.error('replyComment', error);
192
+ return cb(error);
193
+ }
194
+
195
+ try {
196
+ // ── Step 1: Resolve the numeric post ID from the URL ─────────
197
+ const postID = await resolvePostID(defaultFuncs, ctx, postUrl);
198
+ utils.log('replyComment', `Resolved postID: ${postID}`);
199
+
200
+ // ── Step 2: Build the correct base64 IDs ─────────────────────
201
+ // feedback_id = base64("feedback:{postID}_{commentID}")
202
+ const feedbackIdRaw = `feedback:${postID}_${commentID}`;
203
+ const feedbackIdBase64 = Buffer.from(feedbackIdRaw).toString('base64');
204
+
205
+ // reply_comment_parent_fbid = base64("comment:{postID}_{commentID}")
206
+ const replyParentRaw = `comment:${postID}_${commentID}`;
207
+ const replyParentBase64 = Buffer.from(replyParentRaw).toString('base64');
208
+
209
+ // ── Step 3: Build the variables payload ──────────────────────
210
+ const variables = {
211
+ feedLocation: 'POST_PERMALINK_DIALOG',
212
+ feedbackSource: 2,
213
+ groupID: null,
214
+ input: {
215
+ actor_id: ctx.userID,
216
+ client_mutation_id: Math.round(Math.random() * 19).toString(),
217
+ attachments: null,
218
+ feedback_id: feedbackIdBase64,
219
+ formatting_style: null,
220
+ message: {
221
+ ranges: [],
222
+ text: text,
223
+ },
224
+ reply_comment_parent_fbid: replyParentBase64,
225
+ reply_target_clicked: true,
226
+ attribution_id_v2: `CometSinglePostDialogRoot.react,comet.post.single_dialog,via_cold_start,${Date.now()},846664,,,`,
227
+ vod_video_timestamp: null,
228
+ is_tracking_encrypted: true,
229
+ tracking: [],
230
+ feedback_source: 'OBJECT',
231
+ idempotence_token: 'client:' + utils.getGUID(),
232
+ session_id: utils.getGUID(),
233
+ downstream_share_session_id: utils.getGUID(),
234
+ downstream_share_session_origin_uri: postUrl,
235
+ downstream_share_session_start_time: Date.now().toString(),
236
+ },
237
+ inviteShortLinkKey: null,
238
+ renderLocation: null,
239
+ scale: 1,
240
+ useDefaultActor: false,
241
+ focusCommentID: null,
242
+ __relay_internal__pv__groups_comet_use_glvrelayprovider: false,
243
+ __relay_internal__pv__CometUFICommentActionLinksRewriteEnabledrelayprovider: false,
244
+ __relay_internal__pv__CometUFICommentAvatarStickerAnimatedImagerelayprovider: false,
245
+ __relay_internal__pv__IsWorkUserrelayprovider: false,
246
+ __relay_internal__pv__CometUFICommentAutoTranslationTyperelayprovider:
247
+ 'ORIGINAL',
248
+ };
249
+
250
+ // ── Step 4: Submit the reply ──────────────────────────────────
251
+ const info = await submitReply(defaultFuncs, ctx, variables);
252
+ utils.log('replyComment', `Reply created successfully: ${info.id}`);
253
+ cb(null, info);
254
+ } catch (err) {
255
+ utils.error('replyComment', err);
256
+ cb(err);
257
+ }
258
+
259
+ return returnPromise;
260
+ };
261
+ }
@@ -705,6 +705,21 @@ export interface API {
705
705
  callback?: Callback<CommentResult>,
706
706
  ): Promise<CommentResult>;
707
707
 
708
+ /**
709
+ * Reply to a comment on a Facebook post.
710
+ * @param postUrl - The URL of the Facebook post.
711
+ * @param commentID - The numeric ID of the comment to reply to.
712
+ * @param text - The reply text content.
713
+ * @param callback - Optional callback function.
714
+ * @returns A promise that resolves with the new reply's information.
715
+ */
716
+ replyComment(
717
+ postUrl: string,
718
+ commentID: string,
719
+ text: string,
720
+ callback?: Callback<CommentResult>,
721
+ ): Promise<CommentResult>;
722
+
708
723
  /** Share a Facebook post. */
709
724
  share(
710
725
  text: string,