messaging-api-messenger
Messaging API client for Messenger
Table of Contents
Installation
npm i --save messaging-api-messenger
or
yarn add messaging-api-messenger
Usage
Initialize
const { MessengerClient } = require('messaging-api-messenger');
const client = MessengerClient.connect(accessToken);
You can specify version of Facebook Graph API using second argument:
const client = MessengerClient.connect(accessToken, '2.9');
If it is not specified, version 2.10
will be used as default.
API Reference
All methods return a Promise.
sendRawBody(body)
Send request raw body using the Send API.
Param | Type | Description |
---|
body | Object | Raw body to be sent. |
Example:
client.sendRawBody({
recipient: {
id: USER_ID,
},
message: {
text: 'Hello!',
},
});
sendMessage(userId, message)
Send messages to specified user using the Send API.
userId
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
message | Object | message object. |
Example:
client.sendMessage(USER_ID, {
text: 'Hello!',
});
sendText(userId, text [, options])
Send plain text messages to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
text | String | Text of the message to be sent. |
options | Object | Other optional parameters. For example, tags. |
Example:
client.sendText(USER_ID, 'Hello!', { tag: 'ISSUE_RESOLUTION' });
sendAttachment(userId, attachment)
Send attachment messages to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
attachment | Object | attachment object. |
Example:
client.sendAttachment(USER_ID, {
type: 'image',
payload: {
url: 'https://example.com/pic.png',
},
});
sendAudio(userId, audio)
Send sounds to specified user by uploading them or sharing a URL using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
audio | String | Buffer | ReadStream | AttachmentPayload | audio to be sent. |
Example:
- Send audio using url string:
client.sendAudio(USER_ID, 'https://example.com/audio.mp3');
- Use
AttachmentPayload
to send cached attachment:
client.sendAudio(USER_ID, { attachment_id: '55688' });
- Use
ReadStream
created from local file:
const fs = require('fs');
client.sendAudio(USER_ID, fs.createReadStream('audio.mp3'));
sendImage(userId, image)
Send images to specified user by uploading them or sharing a URL using the Send API. Supported formats are jpg, png and gif.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
audio | String | Buffer | ReadStream | AttachmentPayload | image to be sent. |
Example:
- Send image using url string:
client.sendImage(USER_ID, 'https://example.com/vr.jpg');
- Use
AttachmentPayload
to send cached attachment:
client.sendImage(USER_ID, { attachment_id: '55688' });
- Use
ReadStream
created from local file:
const fs = require('fs');
client.sendImage(USER_ID, fs.createReadStream('vr.jpg'));
sendVideo(userId, video)
Send videos to specified user by uploading them or sharing a URL using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
video | String | Buffer | ReadStream | AttachmentPayload | video to be sent. |
Example:
- Send video using url string:
client.sendVideo(USER_ID, 'https://example.com/video.mp4');
- Use
AttachmentPayload
to send cached attachment:
client.sendVideo(USER_ID, { attachment_id: '55688' });
- Use
ReadStream
created from local file:
const fs = require('fs');
client.sendVideo(USER_ID, fs.createReadStream('video.mp4'));
sendFile(userId, file)
Send files to specified user by uploading them or sharing a URL using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
file | String | Buffer | ReadStream | AttachmentPayload | file to be sent. |
Example:
- Send file using url string:
client.sendFile(USER_ID, 'https://example.com/receipt.pdf');
- Use
AttachmentPayload
to send cached attachment:
client.sendFile(USER_ID, { attachment_id: '55688' });
- Use
ReadStream
created from local file:
const fs = require('fs');
client.sendFile(USER_ID, fs.createReadStream('receipt.pdf'));
sendTemplate(userId, template)
Send structured message templates to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
template | Object | Object of the template. |
Example:
client.sendTemplate(USER_ID, {
template_type: 'button',
text: 'title',
buttons: [
{
type: 'postback',
title: 'Start Chatting',
payload: 'USER_DEFINED_PAYLOAD',
},
],
});
sendButtonTemplate(userId, title, buttons)
- Official Docs
Send button message templates to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
title | String | Text that appears above the buttons. |
buttons | Array<Object> | Array of button. Set of 1-3 buttons that appear as call-to-actions. |
Example:
client.sendButtonTemplate(USER_ID, 'What do you want to do next?', [
{
type: 'web_url',
url: 'https://petersapparel.parseapp.com',
title: 'Show Website',
},
{
type: 'postback',
title: 'Start Chatting',
payload: 'USER_DEFINED_PAYLOAD',
},
]);
sendGenericTemplate(userId, elements [, options])
- Official Docs
Send generic message templates to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
elements | Array<Object> | Array of element. Data for each bubble in message. |
options | Object | Other optional parameters, such as image_aspect_ratio and tags. |
Example:
client.sendGenericTemplate(
USER_ID,
[
{
title: "Welcome to Peter's Hats",
image_url: 'https://petersfancybrownhats.com/company_image.png',
subtitle: "We've got the right hat for everyone.",
default_action: {
type: 'web_url',
url: 'https://peterssendreceiveapp.ngrok.io/view?item=103',
messenger_extensions: true,
webview_height_ratio: 'tall',
fallback_url: 'https://peterssendreceiveapp.ngrok.io/',
},
buttons: [
{
type: 'postback',
title: 'Start Chatting',
payload: 'DEVELOPER_DEFINED_PAYLOAD',
},
],
},
],
{ image_aspect_ratio: 'square' }
);
Adding a tag to a message allows you to send it outside the 24+1 window, for a limited number of use cases, per Messenger Platform policy.
Example:
client.sendGenericTemplate(
USER_ID,
[
{
},
],
{ tag: 'ISSUE_RESOLUTION' }
);
Available tags:
ACCOUNT_UPDATE
PAYMENT_UPDATE
PERSONAL_FINANCE_UPDATE
SHIPPING_UPDATE
RESERVATION_UPDATE
ISSUE_RESOLUTION
APPOINTMENT_UPDATE
GAME_EVENT
TRANSPORTATION_UPDATE
FEATURE_FUNCTIONALITY_UPDATE
TICKET_UPDATE
sendListTemplate(userId, items, buttons, options)
- Official Docs
Send list message templates to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
items | Array<Object> | Array of element. List view elements. |
buttons | Array<Object> | Array of button. List of buttons associated on the list template message (maximum of 1 button). |
options | Object | Other optional parameters, such as top_element_style . |
Example:
client.sendListTemplate(
USER_ID,
[
{
title: 'Classic T-Shirt Collection',
image_url: 'https://peterssendreceiveapp.ngrok.io/img/collection.png',
subtitle: 'See all our colors',
default_action: {
type: 'web_url',
url: 'https://peterssendreceiveapp.ngrok.io/shop_collection',
messenger_extensions: true,
webview_height_ratio: 'tall',
fallback_url: 'https://peterssendreceiveapp.ngrok.io/',
},
buttons: [
{
title: 'View',
type: 'web_url',
url: 'https://peterssendreceiveapp.ngrok.io/collection',
messenger_extensions: true,
webview_height_ratio: 'tall',
fallback_url: 'https://peterssendreceiveapp.ngrok.io/',
},
],
},
],
[
{
type: 'postback',
title: 'View More',
payload: 'USER_DEFINED_PAYLOAD',
},
],
{ top_element_style: 'compact' }
);
sendOpenGraphTemplate(userId, elements)
- Official Docs
Send open graph message templates to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
elements | Array<Object> | Array of element. Only one element is allowed. |
Example:
client.sendOpenGraphTemplate(USER_ID, [
{
url: 'https://open.spotify.com/track/7GhIk7Il098yCjg4BQjzvb',
buttons: [
{
type: 'web_url',
url: 'https://en.wikipedia.org/wiki/Rickrolling',
title: 'View More',
},
],
},
]);
sendReceiptTemplate(userId, receipt)
- Official Docs
Send receipt message templates to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
receipt | Object | payload of receipt template. |
Example:
client.sendReceiptTemplate(USER_ID, {
recipient_name: 'Stephane Crozatier',
order_number: '12345678902',
currency: 'USD',
payment_method: 'Visa 2345',
order_url: 'http://petersapparel.parseapp.com/order?order_id=123456',
timestamp: '1428444852',
elements: [
{
title: 'Classic White T-Shirt',
subtitle: '100% Soft and Luxurious Cotton',
quantity: 2,
price: 50,
currency: 'USD',
image_url: 'http://petersapparel.parseapp.com/img/whiteshirt.png',
},
{
title: 'Classic Gray T-Shirt',
subtitle: '100% Soft and Luxurious Cotton',
quantity: 1,
price: 25,
currency: 'USD',
image_url: 'http://petersapparel.parseapp.com/img/grayshirt.png',
},
],
address: {
street_1: '1 Hacker Way',
street_2: '',
city: 'Menlo Park',
postal_code: '94025',
state: 'CA',
country: 'US',
},
summary: {
subtotal: 75.0,
shipping_cost: 4.95,
total_tax: 6.19,
total_cost: 56.14,
},
adjustments: [
{
name: 'New Customer Discount',
amount: 20,
},
{
name: '$10 Off Coupon',
amount: 10,
},
],
});
sendAirlineBoardingPassTemplate(userId, attributes)
- Official Docs
Send airline boarding pass message templates to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
attributes | Object | payload of boarding pass template. |
Example:
client.sendAirlineBoardingPassTemplate(RECIPIENT_ID, {
intro_message: 'You are checked in.',
locale: 'en_US',
boarding_pass: [
{
passenger_name: 'SMITH/NICOLAS',
pnr_number: 'CG4X7U',
travel_class: 'business',
seat: '74J',
auxiliary_fields: [
{
label: 'Terminal',
value: 'T1',
},
{
label: 'Departure',
value: '30OCT 19:05',
},
],
secondary_fields: [
{
label: 'Boarding',
value: '18:30',
},
{
label: 'Gate',
value: 'D57',
},
{
label: 'Seat',
value: '74J',
},
{
label: 'Sec.Nr.',
value: '003',
},
],
logo_image_url: 'https://www.example.com/en/logo.png',
header_image_url: 'https://www.example.com/en/fb/header.png',
qr_code: 'M1SMITH/NICOLAS CG4X7U nawouehgawgnapwi3jfa0wfh',
above_bar_code_image_url: 'https://www.example.com/en/PLAT.png',
flight_info: {
flight_number: 'KL0642',
departure_airport: {
airport_code: 'JFK',
city: 'New York',
terminal: 'T1',
gate: 'D57',
},
arrival_airport: {
airport_code: 'AMS',
city: 'Amsterdam',
},
flight_schedule: {
departure_time: '2016-01-02T19:05',
arrival_time: '2016-01-05T17:30',
},
},
},
{
passenger_name: 'JONES/FARBOUND',
pnr_number: 'CG4X7U',
travel_class: 'business',
seat: '74K',
auxiliary_fields: [
{
label: 'Terminal',
value: 'T1',
},
{
label: 'Departure',
value: '30OCT 19:05',
},
],
secondary_fields: [
{
label: 'Boarding',
value: '18:30',
},
{
label: 'Gate',
value: 'D57',
},
{
label: 'Seat',
value: '74K',
},
{
label: 'Sec.Nr.',
value: '004',
},
],
logo_image_url: 'https://www.example.com/en/logo.png',
header_image_url: 'https://www.example.com/en/fb/header.png',
qr_code: 'M1JONES/FARBOUND CG4X7U nawouehgawgnapwi3jfa0wfh',
above_bar_code_image_url: 'https://www.example.com/en/PLAT.png',
flight_info: {
flight_number: 'KL0642',
departure_airport: {
airport_code: 'JFK',
city: 'New York',
terminal: 'T1',
gate: 'D57',
},
arrival_airport: {
airport_code: 'AMS',
city: 'Amsterdam',
},
flight_schedule: {
departure_time: '2016-01-02T19:05',
arrival_time: '2016-01-05T17:30',
},
},
},
],
});
sendAirlineCheckinTemplate(userId, attributes)
- Official Docs
Send airline checkin message templates to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
attributes | Object | payload of checkin template. |
Example:
client.sendAirlineCheckinTemplate(USER_ID, {
intro_message: 'Check-in is available now.',
locale: 'en_US',
pnr_number: 'ABCDEF',
flight_info: [
{
flight_number: 'f001',
departure_airport: {
airport_code: 'SFO',
city: 'San Francisco',
terminal: 'T4',
gate: 'G8',
},
arrival_airport: {
airport_code: 'SEA',
city: 'Seattle',
terminal: 'T4',
gate: 'G8',
},
flight_schedule: {
boarding_time: '2016-01-05T15:05',
departure_time: '2016-01-05T15:45',
arrival_time: '2016-01-05T17:30',
},
},
],
checkin_url: 'https://www.airline.com/check-in',
});
sendAirlineItineraryTemplate(userId, attributes)
- Official Docs
Send airline itinerary message templates to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
attributes | Object | payload of itinerary template. |
Example:
client.sendAirlineItineraryTemplate(USER_ID, {
intro_message: "Here's your flight itinerary.",
locale: 'en_US',
pnr_number: 'ABCDEF',
passenger_info: [
{
name: 'Farbound Smith Jr',
ticket_number: '0741234567890',
passenger_id: 'p001',
},
{
name: 'Nick Jones',
ticket_number: '0741234567891',
passenger_id: 'p002',
},
],
flight_info: [
{
connection_id: 'c001',
segment_id: 's001',
flight_number: 'KL9123',
aircraft_type: 'Boeing 737',
departure_airport: {
airport_code: 'SFO',
city: 'San Francisco',
terminal: 'T4',
gate: 'G8',
},
arrival_airport: {
airport_code: 'SLC',
city: 'Salt Lake City',
terminal: 'T4',
gate: 'G8',
},
flight_schedule: {
departure_time: '2016-01-02T19:45',
arrival_time: '2016-01-02T21:20',
},
travel_class: 'business',
},
{
connection_id: 'c002',
segment_id: 's002',
flight_number: 'KL321',
aircraft_type: 'Boeing 747-200',
travel_class: 'business',
departure_airport: {
airport_code: 'SLC',
city: 'Salt Lake City',
terminal: 'T1',
gate: 'G33',
},
arrival_airport: {
airport_code: 'AMS',
city: 'Amsterdam',
terminal: 'T1',
gate: 'G33',
},
flight_schedule: {
departure_time: '2016-01-02T22:45',
arrival_time: '2016-01-03T17:20',
},
},
],
passenger_segment_info: [
{
segment_id: 's001',
passenger_id: 'p001',
seat: '12A',
seat_type: 'Business',
},
{
segment_id: 's001',
passenger_id: 'p002',
seat: '12B',
seat_type: 'Business',
},
{
segment_id: 's002',
passenger_id: 'p001',
seat: '73A',
seat_type: 'World Business',
product_info: [
{
title: 'Lounge',
value: 'Complimentary lounge access',
},
{
title: 'Baggage',
value: '1 extra bag 50lbs',
},
],
},
{
segment_id: 's002',
passenger_id: 'p002',
seat: '73B',
seat_type: 'World Business',
product_info: [
{
title: 'Lounge',
value: 'Complimentary lounge access',
},
{
title: 'Baggage',
value: '1 extra bag 50lbs',
},
],
},
],
price_info: [
{
title: 'Fuel surcharge',
amount: '1597',
currency: 'USD',
},
],
base_price: '12206',
tax: '200',
total_price: '14003',
currency: 'USD',
});
sendAirlineFlightUpdateTemplate(userId, attributes)
- Official Docs
Send airline flight update message templates to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
attributes | Object | payload of update template. |
Example:
client.sendAirlineFlightUpdateTemplate(USER_ID, {
intro_message: 'Your flight is delayed',
update_type: 'delay',
locale: 'en_US',
pnr_number: 'CF23G2',
update_flight_info: {
flight_number: 'KL123',
departure_airport: {
airport_code: 'SFO',
city: 'San Francisco',
terminal: 'T4',
gate: 'G8',
},
arrival_airport: {
airport_code: 'AMS',
city: 'Amsterdam',
terminal: 'T4',
gate: 'G8',
},
flight_schedule: {
boarding_time: '2015-12-26T10:30',
departure_time: '2015-12-26T11:30',
arrival_time: '2015-12-27T07:30',
},
},
});
sendQuickReplies(userId, message, items)
Send messages with quick replies to specified user using the Send API.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
message | Object | text or attachment must be set. |
items | Array<Object> | Array of quick_reply to be sent with messages. |
Example:
client.sendQuickReplies(USER_ID, { text: 'Pick a color:' }, [
{
content_type: 'text',
title: 'Red',
payload: 'DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_RED',
},
]);
sendSenderAction(userId, action)
Send sender actions to specified user using the Send API, to let users know you are processing their request.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
action | String | Name of the action. |
Example:
client.sendSenderAction(USER_ID, 'typing_on');
markSeen(userId)
Mark last message as read for specified user.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
Example:
client.markSeen(USER_ID);
typingOn(userId)
Turn typing indicators on for specified user.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
Example:
client.typingOn(USER_ID);
typingOff(userId)
Turn typing indicators off for specified user.
Param | Type | Description |
---|
userId | String | Object | Page-scoped user ID of the recipient or recipient object. |
Example:
client.typingOff(USER_ID);
uploadAttachment(type, url)
Upload specified type attachment using URL address.
Param | Type | Description |
---|
type | String | Must be one of `image |
url | String | URL address of the attachment. |
Example:
client.uploadAttachment('image', 'http://www.example.com/image.jpg');
uploadAudio(url)
Upload audio attachment using URL address.
Param | Type | Description |
---|
url | String | URL address of the audio. |
Example:
client.uploadAudio('http://www.example.com/audio.mp3');
uploadImage(url)
Upload image attachment using URL address.
Param | Type | Description |
---|
url | String | URL address of the image. |
Example:
client.uploadImage('http://www.example.com/image.jpg');
uploadVideo(url)
Upload video attachment using URL address.
Upload image attachment using URL address.
Param | Type | Description |
---|
url | String | URL address of the video. |
Example:
client.uploadVideo('http://www.example.com/video.mp4');
uploadFile(url)
Upload file attachment using URL address.
Param | Type | Description |
---|
url | String | URL address of the file. |
Example:
client.uploadFile('http://www.example.com/file.pdf');
getMessageTags
Getting tags list via an API.
Example:
client.getMessageTags().then(tags => {
console.log(tags);
});
sendBatch(requests)
Sends multiple requests in one batch.
Param | Type | Description |
---|
requests | Array<Object> | Subrequests in the batch. |
Example
const { Messenger } = require('messaging-api-messenger');
client.sendBatch([
Messenger.createText(USER_ID, '1'),
Messenger.createText(USER_ID, '2'),
Messenger.createText(USER_ID, '3'),
Messenger.createText(USER_ID, '4'),
Messenger.createText(USER_ID, '5'),
]);
getUserProfile(userId)
Retrieving a Person's Profile.
Param | Type | Description |
---|
userId | String | Page-scoped user ID of the recipient. |
Example:
client.getUserProfile(USER_ID).then(user => {
console.log(user);
});
getMessengerProfile(fields)
Retrieves the current value of one or more Messenger Profile properties by name.
Param | Type | Description |
---|
fields | Array<String> | Value must be among `account_linking_url |
Example:
client.getMessengerProfile(['get_started', 'persistent_menu']).then(profile => {
console.log(profile);
});
setMessengerProfile(profile)
Sets the values of one or more Messenger Profile properties. Only properties set in the request body will be overwritten.
Param | Type | Description |
---|
profile | Object | Object of Profile. |
Example:
client.setMessengerProfile({
get_started: {
payload: 'GET_STARTED',
},
persistent_menu: [
{
locale: 'default',
composer_input_disabled: true,
call_to_actions: [
{
type: 'postback',
title: 'Restart Conversation',
payload: 'RESTART',
},
],
},
],
});
deleteMessengerProfile(fields)
Deletes one or more Messenger Profile properties. Only properties specified in the fields array will be deleted.
Param | Type | Description |
---|
fields | Array<String> | Value must be among `account_linking_url |
Example:
client.deleteMessengerProfile(['get_started', 'persistent_menu']);
![](https://scontent-tpe1-1.xx.fbcdn.net/v/t39.2365-6/16686128_804279846389859_443648268883197952_n.png?oh=adde03b0bc7dd524a58cf46016e0267d&oe=59FC90D6)
Retrieves the current value of persistent menu.
Example:
client.getPersistentMenu().then(menu => {
console.log(menu);
});
Sets the values of persistent menu.
Param | Type | Description |
---|
menu | Array<Object> | Array of menu. |
Example:
client.setPersistentMenu([
{
locale: 'default',
call_to_actions: [
{
title: 'Play Again',
type: 'postback',
payload: 'RESTART',
},
{
title: 'Language Setting',
type: 'nested',
call_to_actions: [
{
title: '中文',
type: 'postback',
payload: 'CHINESE',
},
{
title: 'English',
type: 'postback',
payload: 'ENGLISH',
},
],
},
{
title: 'Explore D',
type: 'nested',
call_to_actions: [
{
title: 'Explore',
type: 'web_url',
url: 'https://www.youtube.com/watch?v=v',
webview_height_ratio: 'tall',
},
{
title: 'W',
type: 'web_url',
url: 'https://www.facebook.com/w',
webview_height_ratio: 'tall',
},
{
title: 'Powered by YOCTOL',
type: 'web_url',
url: 'https://www.yoctol.com/',
webview_height_ratio: 'tall',
},
],
},
],
},
]);
Note: You must set a get started button to use the persistent menu.
Deletes persistent menu.
Example:
client.deletePersistentMenu();
getGetStarted
Retrieves the current value of get started button.
Example:
client.getGetStarted().then(getStarted => {
console.log(getStarted);
});
setGetStarted(payload)
Sets the values of get started button.
Param | Type | Description |
---|
payload | String | Payload sent back to your webhook in a messaging_postbacks event when the 'Get Started' button is tapped. |
Example:
client.setGetStarted('GET_STARTED');
deleteGetStarted
Deletes get started button.
Example:
client.deleteGetStarted();
getGreeting
Retrieves the current value of greeting text.
Example:
client.getGreeting().then(greeting => {
console.log(greeting);
});
setGreeting(greeting)
Sets the values of greeting text.
Param | Type | Description |
---|
greeting | Array<Object> | Array of greeting. |
Example:
client.setGreeting([
{
locale: 'default',
text: 'Hello!',
},
]);
deleteGreeting
Deletes greeting text.
Example:
client.deleteGreeting();
getWhitelistedDomains
Retrieves the current value of whitelisted domains.
Example:
client.getWhitelistedDomains().then(domains => {
console.log(domains);
});
setWhitelistedDomains(domains)
Sets the values of whitelisted domains.
Example:
client.setWhitelistedDomains(['www.example.com']);
deleteWhitelistedDomains
Deletes whitelisted domains.
Example:
client.deleteWhitelistedDomains();
getAccountLinkingURL
Retrieves the current value of account linking URL.
Example:
client.getAccountLinkingURL().then(accountLinking => {
console.log(accountLinking);
});
setAccountLinkingURL(url)
Sets the values of account linking URL.
Param | Type | Description |
---|
url | String | Account linking URL. |
Example:
client.setAccountLinkingURL(
'https://www.example.com/oauth?response_type=code&client_id=1234567890&scope=basic'
);
deleteAccountLinkingURL
Deletes account linking URL.
Example:
client.deleteAccountLinkingURL();
getPaymentSettings
Retrieves the current value of payment settings.
Example:
client.getPaymentSettings().then(settings => {
console.log(settings);
});
setPaymentPrivacyPolicyURL(url)
Sets the values of payment privacy policy URL.
Param | Type | Description |
---|
url | String | Payment privacy policy URL. |
Example:
client.setPaymentPrivacyPolicyURL('https://www.example.com');
setPaymentPublicKey(key)
Sets the values of payment public key.
Param | Type | Description |
---|
key | String | payment public key. |
Example:
client.setPaymentPublicKey('YOUR_PUBLIC_KEY');
setPaymentTestUsers(users)
Sets the values of payment test users.
Param | Type | Description |
---|
users | Array<String> | Array of IDs for people that will test payments in your app. |
Example:
client.setPaymentTestUsers(['12345678']);
deletePaymentSettings
Deletes payment settings.
Example:
client.deletePaymentSettings();
getTargetAudience
Retrieves the current value of target audience.
Example:
client.getTargetAudience().then(targetAudience => {
console.log(targetAudience);
});
setTargetAudience(type, whitelist, blacklist)
Sets the values of target audience.
Param | Type | Description |
---|
type | String | Audience type. Valid values include `all |
whitelist | Array<String> | List of ISO 3166 Alpha-2 codes. Users in any of the blacklist countries won't see your bot on discovery surfaces on Messenger Platform. |
blacklist | Array<String> | List of ISO 3166 Alpha-2 codes. Users in any of the whitelist countries will see your bot on discovery surfaces on Messenger Platform. |
Exmaple:
client.setTargetAudience('custom', ['US', 'CA'], ['UK']);
deleteTargetAudience
Deletes target audience.
Example:
client.deleteTargetAudience();
getHomeURL
Retrieves the current value of chat extension home URL.
Example:
client.getHomeURL().then(chatExtension => {
console.log(chatExtension);
});
setHomeURL(url, attributes)
Sets the values of chat extension home URL.
Param | Type | Description |
---|
url | String | The URL to be invoked from drawer. |
attributes | Object | Other properties of home URL. |
Exmaple:
client.setHomeURL('http://petershats.com/send-a-hat', {
webview_height_ratio: 'tall',
in_test: true,
});
deleteHomeURL
Deletes chat extension home URL.
Example:
client.deleteHomeURL();
![](https://scontent-tpe1-1.xx.fbcdn.net/v/t39.2365-6/16685647_261975084241469_2329165888516784128_n.png?oh=61941dc020355f5c8fe88035d33f1503&oe=59F612D6)
generateMessengerCode(options)
Generating a Messenger code.
Param | Type | Description |
---|
options | Object | Optional parameters of generating a Messenger code. |
options.image_size | Number | The size, in pixels, for the image you are requesting. |
options.data | Object | If creating a parametric code, pass { "data": { "ref": "YOUR_REF_HERE" } } . |
Example:
client
.generateMessengerCode({
data: {
ref: 'billboard-ad',
},
image_size: 1000,
})
.then(code => {
console.log(code);
});
Handover Protocol API
passThreadControl(userId, targetAppId, metadata)
- Official Docs
Passes thread control from your app to another app.
Param | Type | Description |
---|
userId | String | The PSID of the message recipient. |
targetAppId | Number | The app ID of the Secondary Receiver to pass thread control to. |
metadata | String | Metadata passed to the receiving app in the pass_thread_control webhook event. |
Example:
client.passThreadControl(USER_ID, APP_ID, 'free formed text for another app');
takeThreadControl(userId, metadata)
- Official Docs
Takes control of a specific thread from a Secondary Receiver app.
Param | Type | Description |
---|
userId | String | The PSID of the message recipient. |
metadata | String | Metadata passed back to the secondary app in the take_thread_control webhook event. |
Example:
client.passThreadControl(USER_ID, 'free formed text for another app');
Retrieves the list of apps that are Secondary Receivers for a page.
Example:
client.getSecondaryReceivers().then(receivers => {
console.log(receivers);
});
getDailyUniqueActiveThreadCounts
Retrieves a count of the unique active threads your app participated in per day.
Example:
client.getDailyUniqueActiveThreadCounts().then(counts => {
console.log(counts);
});
getDailyUniqueConversationCounts
Retrieves a count of actions that were initiated by people your app was in an active thread with per day.
Example:
client.getDailyUniqueConversationCounts().then(counts => {
console.log(counts);
});
setNLPConfigs(config)
Set values of NLP configs.
Param | Type | Description |
---|
config | Object | Configuration of NLP. |
config.nlp_enabled | Boolean | Either enable NLP or disable NLP for that Page. |
config.custom_token | String | Access token from Wit. |
Example:
client.setNLPConfigs({
nlp_enabled: true,
});
enableNLP
Enabling Built-in NLP.
Example:
client.enableNLP();
disableNLP
Disabling Built-in NLP.
Example:
client.disableNLP();