Packages
messenger_bot
0.8.2
1.3.0
1.2.0
retired
1.1.0
retired
1.0.0
retired
1.0.0-rc.8
retired
1.0.0-rc.7
retired
1.0.0-rc.6
retired
1.0.0-rc.5
retired
1.0.0-rc.4
retired
1.0.0-rc.3
retired
1.0.0-rc.2
retired
1.0.0-rc.1
retired
1.0.0-beta9
retired
1.0.0-beta8
retired
1.0.0-beta7
retired
1.0.0-beta6
retired
1.0.0-beta5
retired
1.0.0-beta4
retired
1.0.0-beta3
retired
1.0.0-beta2
retired
1.0.0-beta10
retired
1.0.0-beta1
retired
0.9.2
retired
0.9.1
retired
0.9.0
retired
0.8.2
retired
0.8.1
retired
0.8.0
retired
0.7.3
retired
0.7.2
retired
0.7.1
retired
0.7.0
retired
0.6.0
retired
0.5.2
retired
0.5.1
retired
0.5.0
retired
0.4.0
retired
0.3.0
retired
0.2.1
retired
0.2.0
retired
0.1.0
retired
Unofficial Facebook Messenger Platform chatbot client and webhook handler
Retired package: Deprecated
Current section
Files
Jump to
Current section
Files
messenger_bot
README.md
README.md
# MessengerBot
Facebook Messenger Chatbot client
## Installation
The package can be installed by adding `messenger_bot` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[{:messenger_bot, "~> 0.7.3"}]
end
```
The docs can be found at [https://hexdocs.pm/messenger](https://hexdocs.pm/messenger).
## Usage
### Configuration
Update your `config.exs` file and set processor for each input data type, default is Log.
```elixir
# Configure messenger_bot
config :messenger_bot,
setup_token: {:system, "MESSENGER_SETUP_TOKEN", ""},
app_id: {:system, "MESSENGER_APP_ID", ""},
app_token: {:system, "MESSENGER_APP_TOKEN", ""},
pages: %{
"1334609009956145" => %{
id: "1334609009956145", name: "Support Bot",
token: {:system, "MESSENGER_PAGE_TOKEN_1334609009956145", ""}
}
}
# Register messenger_bot 'event_bus event topics'
config :event_bus,
topics: [:mb_message_sent_request_failed,
:mb_message_sent_failed,
:mb_message_sent_succeeded,
:mb_webhook_received,
:mb_delivery_received,
:mb_read_received,
:mb_message_echo_received,
:mb_message_attachments_received,
:mb_message_quick_reply_received,
:mb_message_received,
:mb_optin_received,
:mb_postback_received,
:mb_referral_received,
:mb_payment_received,
:mb_checkout_update_received,
:mb_pre_checkout_received,
:mb_account_linking_received,
:mb_policy_enforcement_received,
:mb_app_roles_received,
:mb_standby_received,
:mb_pass_thread_control_received,
:mb_take_thread_control_received,
:mb_na_received]
```
### Subscribe to event topics
`messenger_bot` package uses [event_bus library](https://github.com/mustafaturan/event_bus) to sent/process Messenger events. Please refer to `event_bus` docs to learn more. You can subscribe registered events. To subscribe and log all events you can use `EventBus.subscribe({MessengerBot.Processor.Log, [".*"]})`.
### Set Get Started Button
```elixir
alias MessengerBot.Payload.MessengerProfileSetRequest
alias MessengerBot.Service.MessagengerProfile
page_id = ""
request = MessengerProfileSetRequest.build_get_started_button()
response = MessagengerProfile.setup_get_started_button(page_id, request)
# %MessengerBot.Payload.MessengerProfileSetResponse{result: "success"}
```
### Set Persistent Menu
```elixir
alias MessengerBot.Payload.MessengerProfileSetRequest
alias MessengerBot.Service.MessagengerProfile
page_id = "123456"
menu_items = [persistent_menu()]
request = MessengerProfileSetRequest.build_persistent_menu(menu_items)
response = MessagengerProfile.setup_get_started_button(page_id, request)
# %MessengerBot.Payload.MessengerProfileSetResponse{result: "success"}
```