defmodule ExWechat.Template do @moduledoc """ Template APIs """ alias ExWechat.Util @doc """ fetch all private templates """ def query do "https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=#{ExWechat.token}" |> HTTPoison.get |> Util.parse_resp |> Util.check_wechat_resp end @doc """ send template message """ def send(uid, template, message, url \\ nil) do data = message |> Enum.reduce(%{}, fn({k,v}, acc) -> acc |> Map.put(k, %{value: v}) end) content = do_make_content url, %{ touser: uid, template_id: template, data: data } "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=#{ExWechat.token}" |> HTTPoison.post(Poison.encode!(content)) |> Util.parse_resp |> Util.check_wechat_resp end defp do_make_content(nil, content), do: content defp do_make_content(url, content), do: content |> Map.put(:url, url) end