Eyeson
eyeson ruby sdk for service app implementation
Installation
Add this line to your application's Gemfile:
gem 'eyeson'
And then execute:
$ bundle install
Configuration
Eyeson.configure do |config|
config.api_key = 'YOUR_API_KEY'
config.api_endpoint = 'https://api.eyeson.team'
end
Receive webhooks for specific events
Eyeson::Webhook.create!(
url: url, # Webhooks will be sent to this URL
types: [] # supported types: 'room', 'team', 'user', 'presentation', 'broadcast', 'file'
)
Meeting reference
Join a meeting room
Puts a user to a (specific) meeting room.
If no arbitrary ids are given, random ids will be generated.
room = Eyeson::Room.join(id: 'ARBITRARY_ID', # optional, e.g. to join a specific room
name: 'DISPLAY_NAME', # optional
user: {
id: 'ARBITRARY_ID', # optional, e.g. your internal user_id
name: 'DISPLAY_NAME', # required!
avatar: 'IMAGE_URL' # optional
})
The meeting room will be available immediately:
# Temporary access key - only valid for current session:
# access_key = room.access_key
redirect_to room.url
Upload a presentation file from remote URL
Uploads and converts any external stored PDF file for presentation.
Eyeson::FileUpload.new(access_key).upload_from('FILE_URL')
Start a live broadcast (YouTube only at the moment)
Eyeson::Broadcast.new(access_key).create(
platform: 'youtube',
stream_url: 'YOUTUBE_STREAM_URL' # see YouTube documentation on how to get a stream url.
)
Stop specific broadcast
Eyeson::Broadcast.new(access_key).destroy(
platform: 'youtube'
)
Stop all broadcasts
Eyeson::Broadcast.new(access_key).destroy_all
Send a message into meeting chat
Eyeson::Message.new(access_key).create(
type: 'chat',
content: 'YOUR_MESSAGE'
)
Insert an image into video
Eyeson::Layer.new(access_key).create(
file: FILE, # either file or url must be provided!
url: URL, # either file or url must be provided!
index: 1, # (optional) use 1 (default) to set as foreground image and -1 to set as background image
layout: nil # (optional) currently supported: 'auto' (meeting participants will be arranged automatically), 'fixed' (meeting participants will be rendered at the bottom of the video, so your background content can be fully displayed.)
)
Get download URL of a specific recording
It is assumed that the recording_id is known (e.g. from a webhook request).
recording = Eyeson::Recording.find(recording_id)
redirect_to recording.url
License
The gem is available as open source under the terms of the MIT License.