Message Reactions API for PubNub Unreal SDK

Add or remove actions on published messages to build features like receipts, reactions, or to associate custom metadata to messages. Clients can subscribe to a channel to receive message action events on that channel. They can also fetch past message reactions from Message Persistence independently or when they fetch original messages.

icon

Usage in Blueprints and C++

Add Message Reaction

Requires Message Persistence

This method requires that Message Persistence is enabled for your key in the Admin Portal. Read the support page on enabling add-on features on your keys.

Add a reaction to a published message.

Method(s)

Basic Usage

#include "Kismet/GameplayStatics.h"
#include "PubnubSubsystem.h"

UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(this);
UPubnubSubsystem* PubnubSubsystem = GameInstance->GetSubsystem<UPubnubSubsystem>();

FString ChannelName = "randomChannel";
FString MessageTimeToken = "5610547826969050";
EPubnubActionType ActionType = EPubnubActionType::pbactypReaction; // Example action type
FString Value = "\"smiley_face\""; // JSON describing the action

// Create a pubnub response delegate
// you MUST implement your own callback function to handle the response
FOnPubnubResponse OnAddMessageActionResponse;
OnAddMessageActionResponse.BindDynamic(this, &AMyActor::OnAddMessageActionResponse);
show all 18 lines

Returns

This method doesn't have any return value.

Remove Message Reaction

Requires Message Persistence

This method requires that Message Persistence is enabled for your key in the Admin Portal. Read the support page on enabling add-on features on your keys.

Remove a previously added reaction from a published message. Returns an empty response.

Method(s)

Basic Usage

#include "Kismet/GameplayStatics.h"
#include "PubnubSubsystem.h"

UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(this);
UPubnubSubsystem* PubnubSubsystem = GameInstance->GetSubsystem<UPubnubSubsystem>();

FString ChannelName = "randomChannel";
FString MessageTimeToken = "5610547826969050";
FString MessageTimeToken = "15610547826970050";

// Add the message action
PubnubSubsystem->RemoveMessageAction(ChannelName, MessageTimeToken, ActionTimeToken);

Returns

This method doesn't have any return value.

Get Message Reactions

Requires Message Persistence

This method requires that Message Persistence is enabled for your key in the Admin Portal. Read the support page on enabling add-on features on your keys.

Get a list of message reactions in a channel. Returns a list of actions sorted by the action's timetoken in ascending order.

Truncated response

Number of message reactions in the response may be truncated when internal limits are hit. If the response is truncated, a more property will be returned with additional parameters. Send iterative calls to Message Persistence adjusting the parameters to fetch more message reactions.

Method(s)

Basic Usage

#include "Kismet/GameplayStatics.h"
#include "PubnubSubsystem.h"

UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(this);
UPubnubSubsystem* PubnubSubsystem = GameInstance->GetSubsystem<UPubnubSubsystem>();

// Create a pubnub response delegate
// you MUST implement your own callback function to handle the response
FOnPubnubResponse OnGetMessageActionsResponse;
OnGetMessageActionsResponse.BindDynamic(this, &AMyActor::OnGetMessageActionsResponse);

FString ChannelName = "randomChannel";
FString Start = "";
FString End = "";

show all 17 lines

Returns

{
"status": 200,
"data": [{
"messageTimetoken": "17198286823798098",
"type": "reaction",
"uuid": "User1",
"value": "happy",
"actionTimetoken": "17198286996058878"
}]
}

History with Message Reactions

Requires Message Persistence

This method requires that Message Persistence is enabled for your key in the Admin Portal. Read the support page on enabling add-on features on your keys.

Returns all actions added on a given channel between the start and end message timetoken.

Truncated response

Number of message reactions in the response may be truncated when internal limits are hit. If the response is truncated, a more property will be returned with additional parameters. Send iterative calls to Message Persistence adjusting the parameters to fetch more message reactions.

Method(s)

Basic Usage

#include "Kismet/GameplayStatics.h"
#include "PubnubSubsystem.h"

UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(this);
UPubnubSubsystem* PubnubSubsystem = GameInstance->GetSubsystem<UPubnubSubsystem>();

// Create a pubnub response delegate
// you MUST implement your own callback function to handle the response
FOnPubnubResponse OnHistoryWithMessageActionsResponse;
OnHistoryWithMessageActionsResponse.BindDynamic(this, &AMyActor::OnHistoryWithMessageActionsResponse);

FString ChannelName = "randomChannel";
FString Start = "";
FString End = "";

show all 17 lines

Returns

{
"status": 200,
"channels": {
"my_channel": [{
"message": {
"text": "\"\\\"message\\\"\"",
"type": "text"
},
"timetoken": "17198286823798098",
"actions": {
"reaction": {
"happy": [{
"uuid": "User1",
"actionTimetoken": "17198286996058878"
}]
show all 22 lines
Last updated on