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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# File 'lib/direct7/whatsapp.rb', line 13
def send_whatsapp_freeform_message(originator, recipient, message_type, body=nil, first_name=nil, last_name=nil, formatted_name=nil, middle_name=nil, suffix=nil, prefix=nil, birthday=nil, phones=nil, emails=nil, urls=nil, latitude=nil, longitude=nil, name=nil, address=nil, type=nil, url=nil, caption=nil, filename=nil, message_id=nil, emoji=nil, contact_addresses=nil)
message = {
'originator' => originator,
'recipients' => [{'recipient' => recipient}],
'content' => {
'message_type' => message_type
}
}
if message_type
if message_type == 'CONTACTS'
message['content']['contacts'] = [{
'name' => {
'first_name' => first_name,
'last_name' => last_name,
'formatted_name' => formatted_name,
'middle_name' => middle_name,
'suffix' => suffix,
'prefix' => prefix,
},
'addresses' => contact_addresses,
'birthday' => birthday,
'phones' => phones,
'emails' => emails,
'urls' => urls
}]
end
if message_type == 'LOCATION'
message['content']['location'] = {
'latitude' => latitude,
'longitude' => longitude,
'name' => name,
'address' => address,
}
end
if message_type == 'ATTACHMENT'
if type
if type == "document"
message['content']['attachment'] = {
'type' => type,
'url' => url,
'caption' => caption,
'filename' => filename
}
else
message['content']['attachment'] = {
'type' => type,
'url' => url,
'caption' => caption
}
end
end
end
if message_type == 'TEXT'
message['content']['text'] = {
'body' => body,
}
end
if message_type == 'REACTION'
message['content']['reaction'] = {
'message_id' => message_id,
'emoji' => emoji
}
end
end
response = @client.post(@client.host, '/whatsapp/v2/send', true, params= {'messages' => [message]})
@log.info('Message sent successfully.')
response
end
|