Send messages to Hangouts Chat rooms using incoming webhooks.
$ gem install hangouts-chat
or add to your Gemfile
gem 'hangouts-chat'
require 'hangouts_chat'
Simple messages that appear inline as if typed by a user. Details and format: Simple Text Messages
sender = HangoutsChat::Sender.new 'webhook_URL'
sender.simple 'text'
More complex messages that have UI elements with actions and HTML support. Details and format: Card messages
sender = HangoutsChat::Sender.new 'webhook_URL'
header = { title: 'Pizza Bot Customer Support',
subtitle: 'pizzabot@example.com',
imageUrl: 'https://goo.gl/aeDtrS' }
sections = [{ widgets: [{ keyValue: { topLabel: 'Order No.', content: '12345' } },
{ keyValue: { topLabel: 'Status', content: 'In Delivery' } }] }]
sender.card(header, sections)
# Create new thread
sender = HangoutsChat::Sender.new 'webhook_URL'
res = sender.simple 'text'
# Response parse
res_json = JSON.parse(res.body)
thread_name = res_json.dig("thread", "name") #=> "spaces/SPACES_ID/threads/THREADS_ID"
# Send to thread (simple)
sender.simple('res message', thread: thread_name)
# Send to thread (card)
header = {...}
sections = {...}
sender.card(header, sections, thread: thread_name)
- Open channel to which you want to send messages
- Click on the channel name in top bar and select 'Configure webhooks'
- Click on 'Add webhook' and fill name for bot, that will be display messages
- Click on 'Save' and copy 'Webhook URL'
Details: Setting up an incoming webhook
Please feel free to contribute any changes, that you want too see in this gem. Feature requests are also accepted.
Before Pull Request submitting please check
- Changed or added code has tests and YARD documentation
- All tests are pass
rubocop
doesn't report any offenses
All tests are use usual Minitest assert
syntax.
To run tests execute rake tests
.
Changelog is available here.