PubNub Logo Docs
Support Contact Sales Login Try Our APIs

›MODERATION

Collapse all
Dark mode

Back to Home

Overview

  • In-App Chat

Chat Components

  • Overview
  • REACT

    • React Components

    ANDROID

    • Getting Started
    • UI Components
    • Data Components
    • Chat Provider

    IOS

    • Getting Started
    • UI Components
    • Data Components
    • Chat Provider

SDKs

  • Overview
  • USERS

    • Setup
    • Metadata
    • Permissions
    • Presence
    • Mentions

    CHANNELS

    • Types and Names
    • Metadata
    • Subscriptions
    • Memberships

    MESSAGES

    • Sending Messages
    • Message Storage
    • Unread Counts
    • File Upload
    • Typing Indicators
    • Read Receipts
    • Emoji Reactions
    • Update Messages
    • Delete Messages
    • Message Webhooks

    PUSH NOTIFICATIONS

    • Overview

    MODERATION

    • Profanity Filters
    • Flag Messages
    • Ban Users
    • Mute Users
    • Spam Prevention

    INTEGRATIONS

    • Overview
    • Content Moderation
    • Image Moderation
    • Language Translation
    • Chatbots
    • GIFs
    • Stickers

Moderation Dashboard

  • Overview
  • Getting Started
  • FEATURES

    • Automatic Text Moderation
    • Automatic Image Moderation
    • Manual Message Moderation
    • Manual User Moderation
    • User Management
    • Channel Management
  • Required Configuration

Debug Console
Network Status

Report offensive messages

PubNub provides a mechanism for users to report offensive content in messages directly from their applications. A moderator can then fetch these flagged messages from storage and either delete them or take appropriate action against the users who sent the messages.

Flag Messages

Use the addMessageAction method to add a flag as an action to a published message. The flag is stored and linked to the original message, so you can see if messages are flagged or not when you fetch them from storage.

JavaScript
Swift
Java
Unity

Go to SDK

pubnub.addMessageAction(
{
channel: 'ch-1'
messageTimetoken: '15610547826970040',
action: {
type: 'flagged',
value: 'message is inappropriate',
},
},
function(status, response) {

}
);

Go to SDK

extension MyAppMessageAction: MessageAction {}

let action = MyAppMessageAction(type: "flagged", value: "message is inappropriate")

pubnub.addMessageAction(
channel: "ch-1",
message: action,
messageTimetoken: 15610547826969050
) { result in
switch result {
case let .success(response):
print("Successfully Message Action Add Response: \(response)")
case let .failure(error):
print("Error from failed response: \(error.localizedDescription)")
}
})

Go to SDK

pubnub.addMessageAction()
.channel("ch-1")
.messageAction(new PNMessageAction()
.setType("flagged")
.setValue("message is inappropriate")
.setMessageTimetoken(15701761818730000L)
)
.async(new PNCallback<PNAddMessageActionResult>() {
@Override
public void onResponse(PNAddMessageActionResult result, PNStatus status) {
if (!status.isError()) {
System.out.println(result.getType());
System.out.println(result.getValue());
System.out.println(result.getUuid());
System.out.println(result.getActionTimetoken());
System.out.println(result.getMessageTimetoken());
} else {
status.getErrorData().getThrowable().printStackTrace();
}
}
})

Go to SDK

MessageActionAdd messageAct = new MessageActionAdd();
messageAct.ActionType = "flagged";
messageAct.ActionValue = "message is inappropriate";

pubnub.AddMessageActions().Channel("ch-1").MessageAction(messageAct).MessageTimetoken(15701761818730000).Async((result, status) => {
if (!status.Error) {
Debug.Log("result.ActionTimetoken: " + result.ActionTimetoken);
Debug.Log("result.ActionType: " + result.ActionType);
Debug.Log("result.ActionValue: " + result.ActionValue);
Debug.Log("result.MessageTimetoken: " + result.MessageTimetoken);
Debug.Log("result.UUID: " + result.UUID);
} else {
Debug.Log(status.Error);
Debug.Log(status.ErrorData.Info);
}
});

Unflag Messages

Use the removeMessageAction method to remove a flag from a message.

JavaScript
Swift
Java
Unity

Go to SDK

pubnub.removeMessageAction(
{
channel: 'ch-1'
messageTimetoken: '15610547826970040',
actionTimetoken: '15610547826970040',
},
function(status, response) {
}
);

Go to SDK

pubnub.removeMessageActions(
channel: "ch-1",
message: 15610547826969050,
action: 15610547826970050
) { result in
switch result {
case let .success(response):
print("Successfully Message Action Remove Response: \(response)")
case let .failure(error):
print("Error from failed response: \(error.localizedDescription)")
}
})

Go to SDK

pubnub.removeMessageAction()
.channel("ch-1")
.messageTimetoken(15701761818730000L)
.actionTimetoken(15701775691010000L)
.async(new PNCallback<PNRemoveMessageActionResult>() {
@Override
public void onResponse(PNRemoveMessageActionResult result, PNStatus status) {
if (!status.isError()) {
// result has no actionable data
// it's enough to check if the status itself is not an error
} else {
status.getErrorData().getThrowable().printStackTrace();
}
}
});

Go to SDK

pubnub.RemoveMessageActions().ActionTimetoken(15701775691010000).Channel("ch-1").MessageTimetoken(15701761818730000).Async((result, status) => {
if (!status.Error) {
// result has no actionable data
} else {
Debug.Log(status.Error);
Debug.Log(status.ErrorData.Info);
}
});

Flagging Events

PubNub triggers events when flags are added or removed. Users that are subscribed to channels will receive these events.

Message action added:

{
   "channel":"my_channel",
   "subscription":null,
   "timetoken":"15871508399473609",
   "publisher":"user-1",
   "message":{
      "source":"actions",
      "version":"1.0",
      "action":"added",
      "data":{
         "type":"flagged",
         "value":"message is inappropriate",
         "messageTimetoken":"15632184115444390",
         "actionTimetoken":"15632184115444394"
      }
   }
}

Message action removed:

{
   "channel":"my_channel",
   "subscription":null,
   "timetoken":"15871508399473609",
   "publisher":"user-1",
   "message":{
      "source":"actions",
      "version":"1.0",
      "action":"removed",
      "data":{
         "type":"flagged",
         "value":"message is inappropriate",
         "messageTimetoken":"15632184115444390",
         "actionTimetoken":"15632184115444394"
      }
   }
}
←Profanity FiltersBan Users→
  • Flag Messages
  • Unflag Messages
  • Flagging Events
© PubNub Inc. - Privacy Policy