Skip to content

Commit 99f1ffb

Browse files
authored
Merge pull request #124 from line/feature/broadcast
Support broadcast
2 parents 378a2b8 + a42360f commit 99f1ffb

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

lib/line/bot/client.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,27 @@ def multicast(to, messages)
131131
request.post
132132
end
133133

134+
# Broadcast messages to users
135+
#
136+
# @param messages [Hash or Array]
137+
#
138+
# @return [Net::HTTPResponse]
139+
def broadcast(messages)
140+
raise Line::Bot::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
141+
142+
messages = [messages] if messages.is_a?(Hash)
143+
144+
request = Request.new do |config|
145+
config.httpclient = httpclient
146+
config.endpoint = endpoint
147+
config.endpoint_path = '/bot/message/broadcast'
148+
config.credentials = credentials
149+
config.messages = messages
150+
end
151+
152+
request.post
153+
end
154+
134155
def leave_group(group_id)
135156
raise Line::Bot::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
136157

spec/line/bot/send_message_01_text_spec.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,26 @@
7676
}.to_json
7777
expect(response.body).to eq(expected)
7878
end
79+
80+
it 'broadcasts the text message' do
81+
uri_template = Addressable::Template.new Line::Bot::API::DEFAULT_ENDPOINT + '/bot/message/broadcast'
82+
stub_request(:post, uri_template).to_return { |request| {body: request.body, status: 200} }
83+
84+
client = Line::Bot::Client.new do |config|
85+
config.channel_token = 'channel_token'
86+
end
87+
88+
message = {
89+
type: 'text',
90+
text: 'Hello, world'
91+
}
92+
response = client.broadcast(message)
93+
94+
expected = {
95+
messages: [
96+
message
97+
]
98+
}.to_json
99+
expect(response.body).to eq(expected)
100+
end
79101
end

0 commit comments

Comments
 (0)