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.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"}
```