gem install getstream-rubyGetting Started
Setup
The official Ruby SDK for Stream covers Chat, Video, Moderation, and Feeds.
Install the SDK:
Or add to your Gemfile:
gem 'getstream-ruby'Initialize the client with your API key and secret (available on the Dashboard):
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: 'your-api-key', api_secret: 'your-api-secret')You can also load credentials from environment variables (STREAM_API_KEY, STREAM_API_SECRET) or a .env file:
client = GetStreamRuby.envServer-side Token
Your backend generates a user token that the client SDKs use to authenticate. A typical place to issue this token is during login or registration.
require 'jwt'
token = JWT.encode({ user_id: 'user-id', iat: Time.now.to_i }, 'your-api-secret', 'HS256')
# return the token to the client appTokens with an expiry:
token = JWT.encode(
{ user_id: 'user-id', iat: Time.now.to_i, exp: (Time.now + 3600).to_i },
'your-api-secret',
'HS256'
)Making Your First API Call
Create a user, open a channel, and send a message:
Models = GetStream::Generated::Models
# Upsert a user
client.common.update_users(
Models::UpdateUsersRequest.new(
users: { 'john' => Models::UserRequest.new(id: 'john', name: 'John') }
)
)
# Create or join a channel
client.chat.get_or_create_channel('messaging', 'hello-world',
Models::ChannelGetOrCreateRequest.new(
data: Models::ChannelInput.new(created_by_id: 'john')
)
)
# Send a message
client.chat.send_message('messaging', 'hello-world',
Models::SendMessageRequest.new(
message: Models::MessageRequest.new(text: 'Hello, Stream!', user_id: 'john')
)
)