ex_wechat v0.1.7 Wechat.Responder
Wechat.Responder
is to make respond to wechat server.
It can be used with server verify and other things.
This module will automaticlly generate needed
methods for your Phoenix controller.
For simple use:
defmodule Demo.WechatController do
# interact with user, return message to user
use Wechat.Responder
# function that parse and render wechat message
import Wechat.Message
end
More complex example(when receives text message from user, it will return a text message with reverse text):
defmodule Wechat.CustomerWechatController do
use Wechat.Web, :controller
use Wechat.Responder
import Wechat.Message
defp on_text_responder(conn) do
message = conn.assigns[:message]
case message do
%{content: "我要图"} ->
reply_with(conn, generate_passive(message, msgtype: "news",
articles: [
%{ title: "sjsjssjsj", description: "xxxxlaldsaldskl",
picurl: "picurl", url: "http://baidu.com" },
%{ title: "sjsjssjsj", description: "xxxxlaldsaldskl",
picurl: "picurl", url: "http://baidu.com" }
]))
%{content: content} ->
reply_with(conn, generate_passive(message, msgtype: "text",
content: String.reverse(content)))
_ ->
conn
end
end
end
There are several methods you can override:
def on_text_responder(conn), do: conn
def on_image_responder(conn), do: conn
def on_voice_responder(conn), do: conn
def on_video_responder(conn), do: conn
def on_shortvideo_responder(conn), do: conn
def on_location_responder(conn), do: conn
def on_link_responder(conn), do: conn
def on_event_responder(conn), do: conn
these methods must return a Plug.Conn
,
just choose what you need.