New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

messaging-api-messenger

Package Overview
Dependencies
Maintainers
2
Versions
112
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

messaging-api-messenger

Messaging API client for Messenger

  • 0.2.5
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3.2K
increased by21.08%
Maintainers
2
Weekly downloads
 
Created
Source

messaging-api-messenger

Messaging API client for Messenger

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');

// get accessToken from facebook developers website
const client = MessengerClient.connect(accessToken);

You can specify version of Facebook Graph API using second argument:

const client = MessengerClient.connect(accessToken, 'v2.9');

If it is not specified, version v2.10 will be used as default.

API Reference

All methods return a Promise.

Send API - Official Docs

sendRawBody(body)
body

Type: Object

client.sendRawBody({
  recipient: {
    id: USER_ID,
  },
  message: {
    text: 'Hello!',
  },
});
send(userId, message)
userId

Type: String

Page-scoped user ID of the recipient.

message

Type: Object

client.send(USER_ID, {
  text: 'Hello!',
});

Content Types - Content types

sendText(userId, text [, options])
userId

Type: String

Page-scoped user ID of the recipient.

text

Type: String

options

Type: Object

client.sendText(USER_ID, 'Hello!');
sendIssueResolutionText(userId, text)
userId

Type: String

Page-scoped user ID of the recipient.

text

Type: String

client.sendIssueResolutionText(USER_ID, 'Hello!');
sendAttachment(userId, attachment)
userId

Type: String

Page-scoped user ID of the recipient.

attachment

Type: Object

client.sendAttachment(USER_ID, {
  type: 'image',
  payload: {
    url: 'https://example.com/pic.png',
  },
});
sendAudio(userId, url)
sendAudio
userId

Type: String

Page-scoped user ID of the recipient.

url

Type: String

client.sendAudio(USER_ID, 'https://example.com/audio.mp3');
sendImage(userId, url)
sendImage
userId

Type: String

Page-scoped user ID of the recipient.

url

Type: String

client.sendImage(USER_ID, 'https://example.com/vr.jpg');
sendVideo(userId, url)
sendVideo
userId

Type: String

Page-scoped user ID of the recipient.

url

Type: String

client.sendVideo(USER_ID, 'https://example.com/video.mp4');
sendFile(userId, url)
sendVideo
userId

Type: String

Page-scoped user ID of the recipient.

url

Type: String

client.sendFile(USER_ID, 'https://example.com/receipt.pdf');

Templates - Official Docs

sendTemplate(userId, template)
userId

Type: String

Page-scoped user ID of the recipient.

template

Type: Object

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
sendButtonTemplate
userId

Type: String

Page-scoped user ID of the recipient.

title

Type: String

buttons

Type: Array<Object>

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) - Official Docs
sendGenericTemplate
userId

Type: String

Page-scoped user ID of the recipient.

elements

Type: Array<Object>

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',
      },
    ],
  },
]);
sendTaggedTemplate(userId, elements, tag)
userId

Type: String

Page-scoped user ID of the recipient.

elements

Type: Array<Object>

tag - Official Docs

Type: String

client.sendTaggedTemplate(
  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',
        },
      ],
    },
  ],
  'GAME_EVENT'
);
sendShippingUpdateTemplate(userId, elements)
userId

Type: String

Page-scoped user ID of the recipient.

elements

Type: Array<Object>

client.sendShippingUpdateTemplate(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',
      },
    ],
  },
]);
sendReservationUpdateTemplate(userId, elements)
userId

Type: String

Page-scoped user ID of the recipient.

elements

Type: Array<Object>

client.sendReservationUpdateTemplate(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',
      },
    ],
  },
]);
sendIssueResolutionTemplate(userId, elements)
userId

Type: String

Page-scoped user ID of the recipient.

elements

Type: Array<Object>

client.sendIssueResolutionTemplate(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',
      },
    ],
  },
]);
sendAppointmentUpdateTemplate(userId, elements)
userId

Type: String

Page-scoped user ID of the recipient.

elements

Type: Array<Object>

client.sendAppointmentUpdateTemplate(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',
      },
    ],
  },
]);
sendGameEventTemplate(userId, elements)
userId

Type: String

Page-scoped user ID of the recipient.

elements

Type: Array<Object>

client.sendGameEventTemplate(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',
      },
    ],
  },
]);
sendTransportationUpdateTemplate(userId, elements)
userId

Type: String

Page-scoped user ID of the recipient.

elements

Type: Array<Object>

client.sendTransportationUpdateTemplate(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',
      },
    ],
  },
]);
sendFeatureFunctionalityUpdateTemplate(userId, elements)
userId

Type: String

Page-scoped user ID of the recipient.

elements

Type: Array<Object>

client.sendFeatureFunctionalityUpdateTemplate(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',
      },
    ],
  },
]);
sendTicketUpdateTemplate(userId, elements)
userId

Type: String

Page-scoped user ID of the recipient.

elements

Type: Array<Object>

client.sendTicketUpdateTemplate(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',
      },
    ],
  },
]);
sendListTemplate(userId, items, buttons, topElementStyle) - Official Docs
sendListTemplate
userId

Type: String

Page-scoped user ID of the recipient.

items

Type: Array<Object>

buttons

Type: Array<Object>

topElementStyle

Type: String

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: 'Start Chatting',
      payload: 'USER_DEFINED_PAYLOAD',
    },
  ],
  'compact'
);
sendOpenGraphTemplate(userId, elements) - Official Docs
userId

Type: String

Page-scoped user ID of the recipient.

elements

Type: Array<Object>

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
sendReceiptTemplate
userId

Type: String

Page-scoped user ID of the recipient.

receipt

Type: Object

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
sendAirlineBoardingPassTemplate
userId

Type: String

Page-scoped user ID of the recipient.

attributes

Type: Object

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
sendAirlineCheckinTemplate
userId

Type: String

Page-scoped user ID of the recipient.

attributes

Type: Object

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
sendAirlineItineraryTemplate
userId

Type: String

Page-scoped user ID of the recipient.

attributes

Type: Object

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
sendAirlineFlightUpdateTemplate
userId

Type: String

Page-scoped user ID of the recipient.

attributes

Type: Object

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',
    },
  },
});

Quick Replies - Official Docs

Sender Actions
sendQuickReplies(userId, message, items)
userId

Type: String

Page-scoped user ID of the recipient.

message

Type: Object

items

Type: Array<Object>

client.sendQuickReplies(USER_ID, { text: 'Pick a color:' }, [
  {
    content_type: 'text',
    title: 'Red',
    payload: 'DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_RED',
  },
]);

Sender Actions - Official Docs

Sender Actions
sendSenderAction(userId, action)
userId

Type: String

Page-scoped user ID of the recipient.

action

Type: String

Name of the action.

client.sendSenderAction(USER_ID, 'typing_on');
turnTypingIndicatorsOn(userId)
userId

Type: String

Page-scoped user ID of the recipient.

client.turnTypingIndicatorsOn(USER_ID);
turnTypingIndicatorsOff(userId)
userId

Type: String

Page-scoped user ID of the recipient.

client.turnTypingIndicatorsOff(USER_ID);

Attachment Upload API - Official Docs

uploadAttachment(type, url)
type

Type: String

url

Type: String

URL address of the attachment.

client.uploadAttachment('image', 'http://www.example.com/image.jpg');
uploadAudio(url)
url

Type: String

URL address of the audio.

client.uploadAudio('http://www.example.com/audio.mp3');
uploadImage(url)
url

Type: String

URL address of the image.

client.uploadImage('http://www.example.com/image.jpg');
uploadVideo(url)
url

Type: String

URL address of the video.

client.uploadVideo('http://www.example.com/video.mp4');
uploadFile(url)
url

Type: String

URL address of the file.

client.uploadFile('http://www.example.com/file.pdf');

Tags - Official Docs

getMessageTags
client.getMessageTags().then(tags => {
  console.log(tags);
  // [
  //   {
  //     tag: 'SHIPPING_UPDATE',
  //     description:
  //       'The shipping_update tag may only be used to provide a shipping status notification for a product that has already been purchased. For example, when the product is shipped, in-transit, delivered, or delayed. This tag cannot be used for use cases beyond those listed above or for promotional content (ex: daily deals, coupons and discounts, or sale announcements).',
  //   },
  //   {
  //     tag: 'RESERVATION_UPDATE',
  //     description:
  //       'The reservation_update tag may only be used to confirm updates to an existing reservation. For example, when there is a change in itinerary, location, or a cancellation (such as when a hotel booking is canceled, a car rental pick-up time changes, or a room upgrade is confirmed). This tag cannot be used for use cases beyond those listed above or for promotional content (ex: daily deals, coupons and discounts, or sale announcements).',
  //   },
  //   {
  //     tag: 'ISSUE_RESOLUTION',
  //     description:
  //       'The issue_resolution tag may only be used to respond to a customer service issue surfaced in a Messenger conversation after a transaction has taken place. This tag is intended for use cases where the business requires more than 24 hours to resolve an issue and needs to give someone a status update and/or gather additional information. This tag cannot be used for use cases beyond those listed above or for promotional content (ex: daily deals, coupons and discounts, or sale announcements, nor can businesses use the tag to proactively message people to solicit feedback).',
  //   },
  //   {
  //     tag: 'APPOINTMENT_UPDATE',
  //     description:
  //       'The appointment_update tag may only be used to provide updates about an existing appointment. For example, when there is a change in time, a location update or a cancellation (such as when a spa treatment is canceled, a real estate agent needs to meet you at a new location or a dental office proposes a new appointment time). This tag cannot be used for use cases beyond those listed above or for promotional content (ex: daily deals, coupons and discounts, or sale announcements).',
  //   },
  //   {
  //     tag: 'GAME_EVENT',
  //     description:
  //       'The game_event tag may only be used to provide an update on user progression, a global event in a game or a live sporting event. For example, when a person’s crops are ready to be collected, their building is finished, their daily tournament is about to start or their favorite soccer team is about to play. This tag cannot be used for use cases beyond those listed above or for promotional content (ex: daily deals, coupons and discounts, or sale announcements).',
  //   },
  //   {
  //     tag: 'TRANSPORTATION_UPDATE',
  //     description:
  //       'The transportation_update tag may only be used to confirm updates to an existing reservation. For example, when there is a change in status of any flight, train or ferry reservation (such as “ride canceled”, “trip started” or “ferry arrived”). This tag cannot be used for use cases beyond those listed above or for promotional content (ex: daily deals, coupons and discounts, or sale announcements).',
  //   },
  //   {
  //     tag: 'FEATURE_FUNCTIONALITY_UPDATE',
  //     description:
  //       'The feature_functionality_update tag may only be used to provide an update on new features or functionality that become available in a bot. For example, announcing the ability to talk to a live agent in a bot, or that the bot has a new skill. This tag cannot be used for use cases beyond those listed above or for promotional content (ex: daily deals, coupons and discounts, or sale announcements).',
  //   },
  //   {
  //     tag: 'TICKET_UPDATE',
  //     description:
  //       'The ticket_update tag may only be used to provide updates pertaining to an event for which a person already has a ticket. For example, when there is a change in time, a location update or a cancellation (such as when a concert is canceled, the venue has changed or a refund opportunity is available). This tag cannot be used for use cases beyond those listed above or for promotional content (ex: daily deals, coupons and discounts, or sale announcements).',
  //   },
  // ]
});

User Profile API - Official Docs

getUserProfile(userId)
userId

Type: String

Page-scoped user ID of the recipient.

client.getUserProfile(USER_ID).then(user => {
  console.log(user);
  // {
  //   first_name: 'Johnathan',
  //   last_name: 'Jackson',
  //   profile_pic: 'https://example.com/pic.png',
  //   locale: 'en_US',
  //   timezone: 8,
  //   gender: 'male',
  // }
});

Messenger Profile API - Official Docs

getMessengerProfile(fields)
fields

Type: Array<String>

client.getMessengerProfile(['get_started', 'persistent_menu']).then(profile => {
  console.log(profile);
  // [
  //   {
  //     get_started: {
  //       payload: 'GET_STARTED',
  //     },
  //   },
  //   {
  //     persistent_menu: [
  //       {
  //         locale: 'default',
  //         composer_input_disabled: true,
  //         call_to_actions: [
  //           {
  //             type: 'postback',
  //             title: 'Restart Conversation',
  //             payload: 'RESTART',
  //           },
  //         ],
  //       },
  //     ],
  //   },
  // ]
});
setMessengerProfile(profile)
profile

Type: Object

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)
fields

Type: Array<String>

client.deleteMessengerProfile(['get_started', 'persistent_menu']);

Persistent Menu - Official Docs

getPersistentMenu
client.getPersistentMenu().then(menu => {
  console.log(menu);
  // [
  //   {
  //     locale: 'default',
  //     composer_input_disabled: true,
  //     call_to_actions: [
  //       {
  //         type: 'postback',
  //         title: 'Restart Conversation',
  //         payload: 'RESTART',
  //       },
  //       {
  //         type: 'web_url',
  //         title: 'Powered by ALOHA.AI, Yoctol',
  //         url: 'https://www.yoctol.com/',
  //       },
  //     ],
  //   },
  // ]
});
setPersistentMenu(menu)
menu

Type: Array<Object>

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',
          },
        ],
      },
    ],
  },
]);
deletePersistentMenu
client.deletePersistentMenu();

Get Started Button - Official Docs

Get Started Button
getGetStartedButton
client.getGetStartedButton().then(getStarted => {
  console.log(getStarted);
  // {
  //   payload: 'GET_STARTED',
  // }
});
setGetStartedButton(payload)
payload

Type: String

client.setGetStartedButton('GET_STARTED');
deleteGetStartedButton
client.deleteGetStartedButton();

Greeting Text - Officail docs

Greeting Text
getGreetingText
client.getGreetingText().then(greeting => {
  console.log(greeting);
  // [
  //   {
  //     locale: 'default',
  //     text: 'Hello!',
  //   },
  // ]
});
setGreetingText(greeting)
greeting

Type: Array<Object>

client.setGreetingText([
  {
    locale: 'default',
    text: 'Hello!',
  },
]);
deleteGreetingText
client.deleteGreetingText();

Domain Whitelist - Official Docs

getDomainWhitelist
client.getDomainWhitelist().then(domains => {
  console.log(domains);
  // ['http://www.example.com/']
});
setDomainWhitelist(domains)
domains

Type: Array<String>

client.setDomainWhitelist(['www.example.com']);
deleteDomainWhitelist
client.deleteDomainWhitelist();

Account Linking URL - Official Docs

getAccountLinkingURL
client.getAccountLinkingURL().then(accountLinking => {
  console.log(accountLinking);
  // {
  //   account_linking_url:
  //     'https://www.example.com/oauth?response_type=code&client_id=1234567890&scope=basic',
  // }
});
setAccountLinkingURL(url)
url

Type: String

client.setAccountLinkingURL(
  'https://www.example.com/oauth?response_type=code&client_id=1234567890&scope=basic'
);
deleteAccountLinkingURL
client.deleteAccountLinkingURL();

Payment Settings - Official Docs

getPaymentSettings
client.getPaymentSettings().then(settings => {
  console.log(settings);
  // {
  //   privacy_url: 'www.facebook.com',
  //   public_key: 'YOUR_PUBLIC_KEY',
  //   test_users: ['12345678'],
  // }
});
setPaymentPrivacyPolicyURL(url)
url

Type: String

client.setPaymentPrivacyPolicyURL('https://www.example.com');
setPaymentPublicKey(key)
key

Type: String

client.setPaymentPublicKey('YOUR_PUBLIC_KEY');
setPaymentTestUsers(users)
users

Type: Array<String>

client.setPaymentTestUsers(['12345678']);
deletePaymentSettings
client.deletePaymentSettings();

Target Audience - Official Docs

getTargetAudience
client.getTargetAudience().then(targetAudience => {
  console.log(targetAudience);
  // {
  //   audience_type: 'custom',
  //   countries: {
  //     whitelist: ['US', 'CA'],
  //   },
  // }
});
setTargetAudience(type, whitelist, blacklist)
type

Type: String

whitelist

Type: Array<String>

blacklist

Type: Array<String>

client.setTargetAudience('custom', ['US', 'CA'], ['UK']);
deleteTargetAudience
client.deleteTargetAudience();

Chat Extension Home URL - Official Docs

getChatExtensionHomeURL
client.getChatExtensionHomeURL().then(chatExtension => {
  console.log(chatExtension);
  // {
  //   url: 'http://petershats.com/send-a-hat',
  //   webview_height_ratio: 'tall',
  //   in_test: true,
  // }
});
setChatExtensionHomeURL(url, attributes)
url

Type: String

attributes

Type: Object

client.setChatExtensionHomeURL('http://petershats.com/send-a-hat', {
  webview_height_ratio: 'tall',
  in_test: true,
});
deleteChatExtensionHomeURL
client.deleteChatExtensionHomeURL();

Messenger Code API - Official Docs

generateMessengerCode(options)
options

Type: Object

options.image_size

Type: Number

options.data

Type: Object

client
  .generateMessengerCode({
    data: {
      ref: 'billboard-ad',
    },
    image_size: 1000,
  })
  .then(code => {
    console.log(code);
    // {
    //   "uri": "YOUR_CODE_URL_HERE"
    // }
  });

Handover Protocol API

passThreadControl(userId, targetAppId, metadata) - Official Docs
userId

Type: String

Page-scoped user ID of the recipient.

targetAppId

Type: Number

metadata

Type: String

client.passThreadControl(USER_ID, APP_ID, 'free formed text for another app');
takeThreadControl(userId, metadata) - Official Docs
userId

Type: String

Page-scoped user ID of the recipient.

metadata

Type: String

client.passThreadControl(USER_ID, 'free formed text for another app');
getSecondaryReceivers - Official Docs
client.getSecondaryReceivers().then(receivers => {
  console.log(receivers);
  // [
  //   {
  //     "id": "12345678910",
  //     "name": "David's Composer"
  //   },
  //   {
  //     "id": "23456789101",
  //     "name": "Messenger Rocks"
  //   }
  // ]
});

Page Messaging Insights API - Official Docs

getDailyUniqueActiveThreadCounts
client.getDailyUniqueActiveThreadCounts().then(counts => {
  console.log(counts);
  // [
  //   {
  //     "name": "page_messages_active_threads_unique",
  //     "period": "day",
  //     "values": [
  //       {
  //         "value": 83111,
  //         "end_time": "2017-02-02T08:00:00+0000"
  //       },
  //       {
  //         "value": 85215,
  //         "end_time": "2017-02-03T08:00:00+0000"
  //       },
  //       {
  //         "value": 87175,
  //         "end_time": "2017-02-04T08:00:00+0000"
  //       }
  //    ],
  //    "title": "Daily unique active threads count by thread fbid",
  //    "description": "Daily: total unique active threads created between users and page.",
  //    "id": "1234567/insights/page_messages_active_threads_unique/day"
  //   }
  // ]
})
getDailyUniqueConversationCounts
client.getDailyUniqueConversationCounts().then(counts => {
  console.log(counts);
  // [
  //   {
  //     "name": "page_messages_feedback_by_action_unique",
  //     "period": "day",
  //     "values": [
  //       {
  //         "value": {
  //           "TURN_ON": 40,
  //           "TURN_OFF": 167,
  //           "DELETE": 720,
  //           "OTHER": 0,
  //           "REPORT_SPAM": 0
  //         },
  //         "end_time": "2017-02-02T08:00:00+0000"
  //       },
  //       {
  //         "value": {
  //           "TURN_ON": 38,
  //           "DELETE": 654,
  //           "TURN_OFF": 155,
  //           "REPORT_SPAM": 1,
  //           "OTHER": 0
  //         },
  //         "end_time": "2017-02-03T08:00:00+0000"
  //       }
  //     ],
  //     "title": "Daily unique conversation count broken down by user feedback actions",
  //     "description": "Daily: total unique active threads created between users and page.",
  //     "id": "1234567/insights/page_messages_active_threads_unique/day"
  //   }
  // ],
})

Built-in NLP API - Official Docs

setNLPConfigs(config)
config

Type: Object

config.nlp_enabled

Type: Boolean

config.custom_token

Type: String

client.setNLPConfigs({
  nlp_enabled: true,
});
enableNLP
client.enableNLP();
disableNLP
client.disableNLP();

Keywords

FAQs

Package last updated on 09 Aug 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc