Home

Awesome

HedwigMessenger

An in-progress alpha...

Configuration

Below is an example configuration

use Mix.Config

config :alfred, Alfred.Robot,
  adapter: Hedwig.Adapters.Messenger,
  name: "alfred",
  token: "", #Your Page Access Token
  responders: [
    {Hedwig.Responders.Help, []},
    {Hedwig.Responders.Ping, []},
  ]

Facebook Callback

Messages are received from Facebook using an HTTP callback. You can use the included Hedwig.Adapters.Messenger.Callback module or define one yourself as long as it calls Hedwig.Adapters.Messenger.handle_in/2 to send the message to the robot.

Using the included server

To use the included callback with your robot, update your dependencies by including plug and cowboy:

  defp deps do
    [
      {:cowboy, "~> 1.0"},
      {:plug, "~> 1.1"}
    ]
  end

Finally, add Hedwig.Adapters.Messenger.Callback to your supervision tree alongside your robot

    children = [
      worker(Alfred.Robot, []),
      worker(Hedwig.Adapters.Messenger.Callback, [])
    ]

The parameters are:

Defining your own callback

If you are defining your own callback (for instance in a phoenix app), just make sure to call Hedwig.Adapters.Messenger.handle_in/2

    def my_messenger_callback(conn, params) do
        case Hedwig.Adapters.Messenger.handle_in(robot_name, params) do
            {:error, reason} ->
                # Handle robot not found
            :ok ->
                # Message sent to robot.
       end
    end

What's Supported

Send APISupported?
Text Messages
Audio Messages
File Messages
Image Messages
Video Messages
Typing Indicators
Quick Replies
Buttons
Templates
Webhook ReferenceSupported?
Message Received
Message Delivered
Message Read
Message Echo
Postback
Plugin Opt-in
Referral
Payment
Checkout Update
Account Linking

Thanks

Initially based on @bryanjos's hedwig_sms design.