# 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.1.0"}]
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
alias MessengerBot.Webhook.Processor.Log
page_id = "123456"
config :messenger_bot,
setup_token: {:system, "MESSENGER_SETUP_TOKEN", ""},
app_token: {:system, "MESSENGER_APP_TOKEN", ""},
page_tokens: [
%{id: "#{pageid}", name: "Messenger Bot",
token: {:system, "MESSENGER_PAGE_TOKEN_#{page_id}", ""}}
],
account_linking_processors: [Log],
delivery_processors: [Log],
message_processors: [Log],
optin_processors: [Log],
postback_processors: [Log],
read_processors: [Log],
referral_processors: [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"}
```