App Context API for Ruby SDK
App Context provides easy-to-use, serverless storage for user and channel data you need to build innovative, reliable, scalable applications. Use App Context to store metadata about your application users and channels, and their membership associations, without the need to stand up your own databases.
PubNub also triggers events when object data is changed: set, updated, or removed from the database. Making a request to set the same data that already exists doesn't trigger an event. Clients can receive these events in real time and update their front-end application accordingly.
User
Manage UUID metadata: list, fetch, set, and remove. Include only the fields you need to reduce payload size.
Get metadata for all users
Get a paginated list of UUID metadata. Use filters and sorting to narrow results.
Method(s)
To Get All UUID Metadata
you can use the following method(s) in the Ruby SDK:
get_all_uuid_metadata(
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
sort Type: Array Default: n/a | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. |
include Type: Object Default: { count: true } | Additional information which should be included in response. Available options:
|
filter Type: String Default: n/a | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here |
start Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit Type: Integer Default: 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Sample code
Reference code
require 'pubnub'
def get_all_uuid_metadata(pubnub)
pubnub.get_all_uuid_metadata(
limit: 5,
include: { custom: true }
) do |envelope|
if envelope.status[:error]
puts "Error fetching UUID metadata: #{envelope.status[:error]}"
else
envelope.result[:data][:metadata].each do |uuid_data|
puts "UUID: #{uuid_data[:id]}"
puts "Name: #{uuid_data[:name]}"
puts "Custom: #{uuid_data[:custom]}"
puts "Updated: #{uuid_data[:updated]}"
show all 35 linesResponse
#<Pubnub::Envelope
@result = {
:data => {
:metadata => [
{
:id => "mg",
:name => "magnum",
:externalId => nil,
:profileUrl => nil,
:email => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "Ad2eyIWXwJzBqAE"
}
],
show all 24 linesGet user metadata
Fetch metadata for a single UUID. Include the Custom object if you need custom fields.
Method(s)
To Get UUID Metadata
you can use the following method(s) in the Ruby SDK:
get_uuid_metadata(
uuid: uuid,
include: include,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
uuid Type: String Default: Client UUID | Identifier for which associated metadata should be fetched. Default: configured PubNub client uuid . |
include Type: Object Default: { custom: true } | Additional information which should be included in response. Available options:
|
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Sample code
pubnub.get_uuid_metadata(include: { custom: true }) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:id => "mg",
:name => "magnum",
:externalId => nil,
:profileUrl => nil,
:email => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "Ad2eyIWXwJzBqAE"
}
},
@status = {
:code => 200
show all 17 linesSet user metadata
Create or update metadata for a UUID. Use the eTag (if available in the SDK) to avoid overwriting concurrent updates.
Unsupported partial updates of custom metadata
The value of the custom metadata parameter sent in this method always overwrites the value stored on PubNub servers. If you want to add new custom data to an existing one, you must:
- Get the existing metadata and store it locally.
- Append the new custom metadata to the existing one.
- Set the entire updated custom object.
Set metadata for a UUID in the database, optionally including the custom data object for each.
Method(s)
To Set UUID Metadata
you can use the following method(s) in the Ruby SDK:
set_uuid_metadata(
uuid: uuid,
metadata: metadata,
include: include,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
uuid Type: String Default: Client UUID | Identifier with which new metadata should be associated. Default: configured PubNub client uuid . |
metadata *Type: Object Default: n/a | Metadata information which should be associated with UUID . Available options:
|
include Type: Object Default: { custom: true } | Additional information which should be included in response. Available options:
|
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
API limits
To learn about the maximum length of parameters used to set user metadata, refer to REST API docs.
Sample code
pubnub.set_uuid_metadata(
uuid: 'mg',
metadata: { name: 'magnum', custom: { XXX: 'YYYY' } },
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:id => "mg",
:name => "magnum",
:externalId => nil,
:profileUrl => nil,
:email => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "Ad2eyIWXwJzBqAE"
}
},
@status = {
:code => 200
show all 17 linesRemove user metadata
Delete metadata for the specified UUID.
Method(s)
To Remove UUID Metadata
you can use the following method(s) in the Ruby SDK:
remove_uuid_metadata(
uuid: uuid,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
uuid Type: String Default: Client UUID | Identifier for which associated metadata should be removed. Default: configured PubNub client uuid . |
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Sample code
pubnub.remove_uuid_metadata(uuid: 'mg') do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@status = {
:code => 200,
:operation => :remove_uuid_metadata,
:category => :ack,
:error => false,
# [...]
},
# [...]
>
Channel
Manage channel metadata: list, fetch, set, and remove.
Get metadata for all channels
Get a paginated list of channel metadata. Use filters and sorting to narrow results.
Method(s)
To Get All Channel Metadata
you can use the following method(s) in the Ruby SDK:
get_all_channels_metadata(
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
sort Type: Array Default: n/a | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. |
include Type: Object Default: { count: true } | Additional information which should be included in response. Available options:
|
filter Type: String Default: n/a | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here |
start Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit Type: Integer Default: 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Sample code
pubnub.get_all_channels_metadata(
limit: 5,
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:metadata => [
{
:id => "rb_channel1",
:name => "some_name",
:description => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "AZTUtcvx6NDGLQ"
},
# {...}
],
:totalCount => 2,
show all 23 linesGet channel metadata
Fetch metadata for a single channel. Include the Custom object if you need custom fields.
Method(s)
To Get Channel Metadata
you can use the following method(s) in the Ruby SDK:
get_channel_metadata(
channel: channel,
include: include,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
channel *Type: String Default: n/a | Name of channel for which associated metadata should be fetched. |
include Type: Object Default: { custom: true } | Additional information which should be included in response. Available options:
|
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Sample code
pubnub.get_channel_metadata(
channel: 'channel',
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:id => "channel",
:name => "some_name",
:description => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "AZTUtcvx6NDGLQ"
}
},
@status = {
:code => 200
}
>
Set channel metadata
Create or update metadata for a channel. Use concurrency controls if available.
Unsupported partial updates of custom metadata
The value of the custom metadata parameter sent in this method always overwrites the value stored on PubNub servers. If you want to add new custom data to an existing one, you must:
- Get the existing metadata and store it locally.
- Append the new custom metadata to the existing one.
- Set the entire updated custom object.
Method(s)
To Set Channel Metadata
you can use the following method(s) in the Ruby SDK:
set_channel_metadata(
channel: channel,
metadata: metadata,
include: include,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
channel *Type: String Default: n/a | Name of channel with which new metadata should be associated. |
metadata *Type: Object Default: n/a | Metadata information which should be associated with channel . Available options:
|
include Type: Object Default: { custom: true } | Additional information which should be included in response. Available options:
|
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
API limits
To learn about the maximum length of parameters used to set channel metadata, refer to REST API docs.
Sample code
pubnub.set_channel_metadata(
channel: 'channel',
metadata: { name: 'some_name', custom: { XXX: 'YYYY' } }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:id => "channel",
:name => "some_name",
:description => nil,
:custom => { "XXX" => "YYYY" },
:updated => <Date>,
:eTag => "AZTUtcvx6NDGLQ"
}
},
@status = {
:code => 200
}
>
Other examples
Iteratively update existing metadata
require 'pubnub'
require 'json'
pubnub = Pubnub.new(
publish_key: 'demo',
subscribe_key: 'demo',
uuid: 'example'
)
channel = 'demo_example'
help_string = <<-HELP
To exit type '/exit'
To show the current object type '/show'
To show this help type '/help'
HELP
show all 89 linesRemove channel metadata
Delete metadata for the specified channel.
Method(s)
To Remove Channel Metadata
you can use the following method(s) in the Ruby SDK:
remove_channel_metadata(
channel: channel,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
channel *Type: String Default: n/a | Name of channel with which the metadata should be removed. |
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Sample code
pubnub.remove_channel_metadata(channel: 'channel') do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@status = {
:code => 200,
:operation => :remove_channel_metadata,
:category => :ack,
:error => false,
# [...]
},
# [...]
>
Channel memberships
Manage the channels a UUID belongs to: list, set, and remove.
Get channel memberships
List channel memberships for a UUID. This doesn't return subscriptions.
Method(s)
To Get Memberships
you can use the following method(s) in the Ruby SDK:
get_memberships(
uuid: uuid,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
uuid Type: String Default: Client UUID | Identifier for which memberships in channels should be fetched. Default: configured PubNub client uuid . |
sort Type: Array Default: n/a | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. |
include Type: Object Default: { count: true } | Additional information which should be included in response. Available options:
|
filter Type: String Default: n/a | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here |
start Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit Type: Integer Default: 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Sample code
pubnub.get_memberships(
uuid: 'mg',
include: { count: true, custom: true, channel_metadata: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:memberships => [
{
:channel => {
:id => "channel-identifier1",
:name => "Channel1",
:description => nil,
# {...}
},
:custom => { "membership-custom" => "custom-data-1" },
:updated => <Date>,
:eTag => "AYbepevg39XeDA"
},
show all 26 linesSet channel memberships
Replace or add memberships for a UUID. Provide channels (optionally with custom data).
Method(s)
To Set Memberships
you can use the following method(s) in the Ruby SDK:
set_memberships(
uuid: uuid,
channels: channels,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
uuid Type: String Default: Client UUID | Identifier for which memberships in channels should be set. Default: configured PubNub client uuid . |
channels *Type: Array Default: n/a | List of channels for which metadata associated with each of them in context of UUID should be set. Each entry is a dictionary with channel and optional fields:
|
sort Type: Array Default: n/a | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. |
include Type: Object Default: { count: true } | Additional information which should be included in response. Available options:
|
filter Type: String Default: n/a | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here |
start Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit Type: Integer Default: 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
API limits
To learn about the maximum length of parameters used to set channel membership metadata, refer to REST API docs.
Sample code
pubnub.set_memberships(
uuid: 'mg',
channels: [
{ channel: 'channel-1' }
],
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:memberships => [
{
:channel => {
:id => "channel-1",
# {...}
},
:custom => nil,
:updated => <Date>,
:eTag => "AY39mJKK//C0VA"
}
],
:totalCount => 1,
show all 23 linesRemove channel memberships
Remove memberships for a UUID. Provide the channels to remove.
Method(s)
To Remove Memberships
you can use the following method(s) in the Ruby SDK:
remove_memberships(
uuid: uuid,
channels: channels,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
uuid Type: String Default: Client UUID | Identifier for which memberships in channels should be removed. Default: configured PubNub client uuid . |
channels *Type: Array Default: n/a | List of channels from which UUID should be removed as member . |
sort Type: Array Default: n/a | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. |
include Type: Object Default: { count: true } | Additional information which should be included in response. Available options:
|
filter Type: String Default: n/a | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here |
start Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit Type: Integer Default: 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Sample code
pubnub.remove_memberships(
uuid: 'mg',
channels: [ 'channel-1' ],
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:memberships => [
{
:channel => {
:id => "channel-2",
# {...}
},
:custom => nil,
:updated => <Date>,
:eTag => "AY39mJKK//C0VA"
}
],
:totalCount => 1,
show all 23 linesChannel members
Manage the users in a channel: list, set, and remove.
Get channel members
List users in a channel. Include user metadata if needed.
Method(s)
To Get Channel Members
you can use the following method(s) in the Ruby SDK:
get_channel_members(
channel: channel,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
channel *Type: String Default: n/a | Name of channel from which members should be fetched. |
sort Type: Array Default: n/a | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. |
include Type: Object Default: { count: true } | Additional information which should be included in response. Available options:
|
filter Type: String Default: n/a | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here |
start Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit Type: Integer Default: 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Sample code
pubnub.get_channel_members(
channel: 'channel-1',
include: { count: true, custom: true, uuid_metadata: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:members => [
{
:uuid => {
:id => "uuid-identifier1",
:name => "uuid1",
:externalId => nil,
:profileUrl => nil,
:email => nil,
:updated => <Date>,
:eTag => "AYfwuq+u+4C01gE",
# {...}
},
show all 30 linesSet channel members
Set users in a channel. Provide UUIDs (optionally with custom data).
Method(s)
To Set Channel Members
you can use the following method(s) in the Ruby SDK:
set_channel_members(
channel: channel,
uuids: uuids,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
channel *Type: String Default: n/a | Name of channel for which members should be set. |
uuids *Type: Array Default: n/a | List of UUIDs for which metadata associated with each of them in context of channel should be set. Each entry is a dictionary with UUID and optional fields:
|
sort Type: Array Default: n/a | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. |
include Type: Object Default: { count: true } | Additional information which should be included in response. Available options:
|
filter Type: String Default: n/a | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here |
start Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit Type: Integer Default: 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
API limits
To learn about the maximum length of parameters used to set channel members metadata, refer to REST API docs.
Sample code
pubnub.set_channel_members(
channel: 'channel',
uuids: [
{ uuid: 'uuid1' }
],
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:members=>[
{
:uuid => {
:id => "mg2",
# {...}
},
:custom => nil,
:updated=><Date>,
:eTag => "AY39mJKK//C0VA"
}
],
:totalCount => 1,
show all 23 linesRemove channel members
Remove users from a channel. Provide the UUIDs to remove.
Method(s)
To Remove Channel Members
you can use the following method(s) in the Ruby SDK:
remove_channel_members(
channel: channel,
uuids: uuids,
sort: sort,
include: include,
filter: filter,
start: start,
end: end,
limit: limit,
http_sync: http_sync,
callback: callback
)
Parameter | Description |
---|---|
channel *Type: String Default: n/a | Name of channel from which members should be removed. |
uuids *Type: Array Default: n/a | List of UUIDs which should be removed from channel's list. |
sort Type: Array Default: n/a | List of criteria (name of field) which should be used for sorting in ascending order. Available options are id , name , and updated . Use asc or desc to specify sort direction. |
include Type: Object Default: { count: true } | Additional information which should be included in response. Available options:
|
filter Type: String Default: n/a | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check here |
start Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end Type: String Default: n/a | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit Type: Integer Default: 100 | Number of objects to return in response. Default is 100 , which is also the maximum value. |
http_sync Type: Boolean Default: false | Method will be executed asynchronously and will return future, to get its value you can use value method. If set to true , method will return array of envelopes (even if there's only one envelope ). For sync methods Envelope object will be returned. |
callback Type: Lambda accepting one parameter Default: n/a | Callback that will be called for each envelope. For async methods future will be returned, to retrieve value Envelope object you have to call value method (thread will be locked until the value is returned). |
Sample code
pubnub.remove_channel_members(
channel: 'channel',
uuids: [ 'mg1' ],
include: { custom: true }
) do |envelope|
puts envelope
end
Response
#<Pubnub::Envelope
@result = {
:data => {
:members=>[
{
:uuid => {
:id => "uuid-identifier",
# {...}
},
:custom => nil,
:updated => <Date>,
:eTag => "AY39mJKK//C0VA"
}
],
:totalCount => 1,
show all 23 lines