Module: WechatGate::Message

Included in:
Config
Defined in:
lib/wechat_gate/message.rb

Instance Method Summary collapse

Instance Method Details

#message_body(type, to, body) ⇒ Object

mp.weixin.qq.com/wiki/17/f298879f8fb29ab98b2f2971d42552fd.html

消息发送只能是被动的,就是微信会把用户的聊天数据推送到服务器端,然后服务器利用返回值作出相应



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/wechat_gate/message.rb', line 9

def message_body(type, to, body)
  content = case type.to_sym
  when :text
    %Q{
      <Content><![CDATA[#{body}]]></Content>
    }
  when :image
    # body: media_id
    %Q{
      <Image>
        <MediaId><![CDATA[#{body}]]></MediaId>
      </Image>
    }
  when :voice
    %Q{
      <Voice>
        <MediaId><![CDATA[#{body}]]></MediaId>
      </Voice>
    }
  when :video
    # body: { media_id: MEDIA_ID, title: TITLE, description: DESCRIPTION }
    %Q{
      <Video>
        <MediaId><![CDATA[#{body[:media_id]}]]></MediaId>
        <Title><![CDATA[#{body[:title]}]]></Title>
        <Description><![CDATA[#{body[:description]}]]></Description>
      </Video>
    }
  end

  %Q{
    <xml>
      <ToUserName><![CDATA[#{to}]]></ToUserName>
      <FromUserName><![CDATA[#{self.specs['wechat_id']}]]></FromUserName>
      <CreateTime>#{Time.now.to_i}</CreateTime>
      <MsgType><![CDATA[#{type}]]></MsgType>
      #{content}
    </xml>
  }
end