Social+ Docs
About UsDeveloper PortalArchives
  • Social+
  • Announcements
  • Technical FAQ
  • Getting Started
    • Installation and Authentication
      • Install iOS SDK
      • Install Android SDK
      • Install JavaScript SDK (Deprecated)
      • Install TypeScript SDK
      • Install Flutter SDK
      • Install SDK for Ionic
    • Tutorials
  • Social+ SDK
    • Core Concepts
      • Session State
      • User
        • Create User
        • Get User Information
        • Search and Query Users
        • Update User Information
        • Delete User
        • Roles & Permissions
        • User Token Management
        • Flag / Unflag User
      • Files, Images, and Videos
        • File Handling
        • Image Handling
        • Video Handling
      • Push Notifications
        • iOS Push Notification Certificate Setup
        • Android Push Notifications Initialization
        • React Native Push Notifications Initialization
        • Register and Unregister Push Notifications on a Device
        • Push Notification Toggles
          • User Push Notification Settings
          • Channel Push Notification Settings
          • Community Push Notification Settings
      • Mentions
      • Poll
      • Ads
        • Get Ads and Settings
        • Ad Impressions
      • Presence State
        • Heartbeat Sync
        • User Presence
        • Channel Presence
      • Live Objects/Collections
        • iOS Live Objects/Collections
        • Android Live Objects/Collections
        • Javascript Live Objects/Collections
        • TypeScript Live Objects/Collections
        • Flutter Live Objects/Collections
      • Realtime Events
        • Social Realtime Events
        • Chat Realtime Events
      • Error Handling
      • Content Moderation
      • Logging
    • Chat
      • Channels
        • Create Channel
        • Query Channels
        • Get Channel
        • Get Channels
        • Update Channel
        • Join/Leave Channel
        • Subchannel
        • Message Preview
        • Unread Count
          • Channel Unread Count
          • Start / stop message read receipt sync
          • Mark Message as Read
          • Message Delivery Status
          • Observe reading count
        • Read Status & Unread Count (Legacy)
        • Channel Moderation
        • Query Members
        • Search Members
        • Archive Channels
      • Messaging
        • Send a Message
          • Text Message
          • Image Message
          • Audio Message
          • Video Message
          • File Message
          • Custom Message
          • Reply to a Message
        • Query and Filter Messages
        • Get and View a Message
        • Edit and Delete Messages
        • Message Reaction
        • Mention in Messages
        • Flag/Unflag a Message
      • Moderation
        • Roles and Permission
        • Mute/Unmute a List of Channel Members
        • Ban/Unban a List of Channel Members
        • Channel Rate-Limiting
    • Social
      • Posts
        • Create Post
          • Text Post
          • Image Post
          • File Post
          • Video Post
          • Live stream Post
          • Poll Post
          • Custom Post
        • Query Post
        • Get Post
        • Viewing Post Content
        • Edit Post
        • Delete Post
        • Mention in Post
        • Flag / Unflag Post
        • Post Review
        • Post Impression
        • Pinned Post
      • Stories
        • Get Global Story Targets
        • Create Story
        • Get Stories
        • Delete Story
        • Get Story Targets
        • Story Impressions
      • Comments
        • Create Comment
        • Query Comment
        • View Comment
        • Get Comment
        • Get Latest Comment
        • Edit Comment
        • Delete Comment
        • Flag/Unflag
        • Get Comment Reaction Data
        • Mention in Comment
      • Reactions
        • Query Reactions
        • Add / Remove Reaction
      • Feed
        • Custom Post Ranking
        • Query Global Feed
      • Communities
        • Create Community
        • Get Community
        • Query Communities
        • Update Community
        • Delete Community
        • Join/Leave Community
        • Trending and Recommended Communities
        • Query Community Members
        • Community Moderation
        • Community Categories
      • Follow/Unfollow
        • Get Connection Status and Connection Counter
        • Follow/Unfollow User
        • Get Follower/Following List
        • Accept/Decline Follow Request
      • Block and Unblock User
      • Intelligent Search
        • Intelligent Search - Post
        • Intelligent Search - Community
      • Notification tray
        • Get Notification Tray Seen
        • Mark Notification Tray Seen
        • Query Notification Tray Item
        • Mark Notification Tray Item Seen
    • Video
      • iOS
        • View & Play Live Stream
        • Broadcast Live Stream
        • Push Notifications
      • Android
        • View & Play Live Stream
        • Broadcast Live Stream
        • Push Notifications
      • Flutter
        • View & Play Live Stream
        • Push Notifications
      • Web
        • View & Play Live Stream
        • Create Live Stream
        • Push Notifications
      • TypeScript (Beta)
        • RunQuery Pattern
        • Live Stream
      • React Native
        • View & Play Live Stream
        • Broadcast Live Stream
    • Changelogs & Versioning
      • iOS
      • Android
      • TypeScript
      • React Native
      • Flutter (Beta)
      • React Native (Video)
      • JavaScript (Deprecated)
  • Social+ UIKit
    • UIKit 4
      • Installation Guide
        • iOS
        • Android
        • Web React
        • Flutter (Beta)
        • React Native (Beta)
      • Setup and Authentication
        • iOS
        • Android
        • Web React
        • Flutter (Beta)
        • React Native (Beta)
      • Customization
        • Remote Config
        • Customization Basics
        • Overriding Navigation Behaviour
      • Social
        • Discover & Search
          • Social Home Page
            • Top Navigation Component
            • Newsfeed Component
            • Empty Newsfeed Component
            • Global Feed Component
            • Create Post Menu Component
            • Community Categories Component
            • Recommended Communities Component
            • Trending Communities Component
          • Global Search Page
            • Top Search Bar Component
            • Community Search Result Component
            • User Search Result Component
          • My Communities Search Page
          • All Categories Page
          • Communities By Category Page
          • Notification Tray
        • Community
          • Community Setup Page
            • Add Category Page
            • Add Member Page
          • Community Profile Page
            • Community Header Component
            • Community Feed Component
            • Community Pin Feed Component
            • Community Image Feed Component
            • Community Video Feed Component
          • Pending Post Page
            • Pending Post Content Component
          • Community Setting Page
            • Community Notification Setting Page
              • Community Posts Notification Page
              • Community Comments Notification Page
              • Community Stories Notification Page
            • Community Post Permissions Page
            • Community Story Setting Page
          • Community Membership Page
        • User
          • User Profile Page
            • User Profile Header Component
            • User Feed Component
            • User Image Feed Component
            • User Video Feed Component
          • Edit User Profile Page
          • Blocked User Page
          • User Relationship Page
          • User Pending Follow Request Page
        • Post
          • Post Details Page
            • Post Content Component
          • Post Composer Page
            • Media Attachment Component
            • Detailed Media Attachment Component
          • Post Target Selection Page
          • Poll Post Composer Page
          • Poll Target Selection Page
        • Livestream
          • Livestream Target Selection Page
          • Livestream Creation Page
          • Livestream Player Page
          • Livestream Terminated Page
        • Story
          • Story Target Tab Component
          • Story Creation Page
            • Story Drafting Page
          • Story Viewing Page
          • Story Target Selection Page
        • Comment & Reaction
          • Comment Tray Component
          • Reaction List Component
        • Content moderation
      • Chat
        • Recent chats (channel list)
          • Chat Home Page
          • Chat List Component
          • Archived Chat List Component
          • Amity Channel Create Conversation Page
        • Conversation Chat
          • AmityChatPage
          • AmityMessageComposer
        • Live Chat
          • Live Chat Page
            • Live Chat Header Component
            • Live Chat Message List Component
              • Reaction List Component
            • Live Chat Compose Bar Component
    • UIKit 3
      • iOS (Deprecated)
        • Overview
        • iOS UIKit Installation Guide
        • Installing UIKit (deprecated)
        • Setup & Authentication
        • Using Themes
        • Social UIKit
          • Using as a whole feature with the default settings
          • Our Components
            • Community Home Page
              • Newsfeed
                • Global Feed
                • My Community Preview
              • Explore Tab
                • Recommended Community
                • Top Trending
                • Categories
            • My Community Page
            • Category List Page
            • Community List by Category Page
            • Community Creation Page
            • Community Profile Edit Page
            • Community Setting Page
              • Community Push Notification Settings Page
                • Community Push Notification Settings - Comment and Reply Relate Event Page
                • Community Push Notification Settings - Post Relate Event Page
            • Post Creation Page
              • Livestream Post
            • Post Detail Page
            • Post Edit Page
            • Comment Creation
            • Comment Edit Page
            • Community Profile Page
              • Community Feed
              • Media Gallery
            • Community Member Page
            • User Profile Page
              • User Feed
            • User Profile Page (2.2)
              • User Feed (2.2)
            • User Setting Page(2.2)
            • User Profile Edit Page
            • Following / Follower User List Page (2.2)
            • Follow Request Page (2.2)
            • Member Selection Page
            • Post Target Selection Page
          • Using Your Own Component
            • Using Your Own Navigation Bar
          • Overriding UIKit Behaviour
            • Feed UI Settings
              • Post Sharing
              • Post Rendering
            • Event Handling
              • Example
          • Roles & Permissions
        • Chat UIKit
          • Using as a Whole Feature with the Default Settings
          • Using Only Some Components
            • Chat Home Page
              • Recent chat
            • Chat Room Page
          • Using your own component
            • Message Bubble
        • Video UIKit
          • Livestream
      • Android (Deprecated)
        • Overview
        • Android UIKit Installation Guide
        • Installing UIKit (deprecated)
        • Setup & Authentication
        • Using Themes
        • Social UIKit
          • Using as a whole feature with the default settings
          • Our Components
            • Community Home Page
              • Newsfeed
                • Global Feed
                • My Community Preview
              • Explore Tab
                • Recommended Community
                • Top Trending Community
                • Categories
            • My Community Page
            • Category List Page
            • Community List By Category Page
            • Community Creation Page
            • Community Profile Edit Page
            • Post Creation Page
              • Livestream Post
            • Post Details Page
            • Post Edit Page
            • Comment Creation
            • Comment Edit Page
            • Community Profile Page (2.5)
              • Community Feed (2.5)
              • Media Gallery
            • Community Member Page
            • User Profile Page
              • User Feed
            • User Profile Page (2.3)
              • User Feed (2.3)
            • User Setting Page (2.3)
            • Following and Follower User List Page(2.3)
            • Follow Request Page (2.3)
            • User Profile Edit Page
            • Member Selection Page
            • Post Target Selection Page
          • Using Your Own Components
            • Using Your Own Navigation Bar
          • Overriding UIKit Behaviour
            • Overriding Global Behaviour
              • Feed UI Settings
                • Post Sharing
                • Post Rendering
            • Event Handling
              • Example
        • Chat UIKit
          • Using as a whole feature with the default settings
          • Using Only Some Components
            • Chat Home Page
              • Recent Chat
            • Chatroom Page
          • Using Your Own Component
            • Message Bubble
      • React (Deprecated)
        • Overview
        • Web UIKit Installation Guide
        • Installing UI Kit (deprecated)
        • Setup & Authentication
        • Using Themes
        • Social UIKit
          • Using as a whole feature with the default settings
          • Our Components
            • Community Home Page
              • Search Communities
              • Newsfeed
                • Global Feed
              • Explore
                • Recommended Communities
                • Top Trending Communities
                • Categories
            • My Community
            • Community List By Category Page
            • Community Creation Page
            • Community Settings
              • Edit Profile Page
              • Members
              • Permissions
            • Post Creation
              • Livestream Post
            • Post Edit
            • Comments
            • Community Profile Page
              • Community Feed
              • Media Gallery
              • Community Members Page
              • Transfer Moderator Role
            • User Profile
              • User Feed
              • Media Gallery
              • Following / Follower User List Page
            • Follow Request Page
            • Profile Settings Page
          • Using Your Own Component
            • Using Your Own Like Button for Posts
          • Overriding UIKit Behaviour
            • Post Rendering
        • Chat UIKit
          • Using as a Whole Feature with the Default Settings
          • Our Components
            • Recent Chat
            • Chat Room
            • Message Bubble
            • Chat Details
        • Event Handling
          • Example
        • Roles & Permissions
      • Flutter (Beta)
        • Overview
        • Flutter UIKit Installation Guide
        • Setup & Authentication
        • Using Themes
        • Social UIKit
          • Using as a whole feature with the default settings
      • React Native (Beta)
        • Setup & Authentication
        • Running the Sample App with Expo
    • Changelogs
      • iOS
      • Android
      • Flutter
      • Web (React)
      • React Native
        • React Native Chat UIKit
        • React Native Social UIKit
  • Analytics & Moderation
    • Social+ Portal
      • Getting Started
      • Application Management
      • Account Management
      • Dashboard
        • Raw Data Export
      • Changelogs
    • Social+ Console
      • Moderation, Roles & Privileges
      • Chat Management
        • Channel Management
        • Message Management
        • Chat Activities (Beta)
      • Social Management
        • Communities
        • Posts
          • Post Viewing and Management
          • Post Creation
          • Post Pinning and Featuring
        • Comments
          • Comment Viewing and Management
          • Comment Creation and Reply
        • Stories
      • User & Content Management
        • User Social History
      • Admin Access Control
      • Livestream Moderation
      • Premium Ads
        • Setting Up Premium Ads
        • Setting Up Advertiser Profile
      • Settings
        • Image Moderation
        • Push Notifications
        • Security
          • Admin Token Management
        • Brand Settings
      • AI Content Moderation
      • Changelogs
    • Social+ APIs and Services
      • Network Settings
      • Generate User Last Activity Report
      • Pre-Hook Event
  • Developers
    • Developer Kits
    • Beta Features
      • Enhance Moderation
      • Search Posts API
      • Content Search V2 (Deprecated)
      • Webhook Events
      • Notification Tray
      • Block User
      • User Activity
    • Migration Guides
      • FCM legacy API Migration Guide
      • SDK v6.26.0 Unread Count Migration Guide
      • JS SDK to TS SDK Migration Guide
      • Web UIKit v3.0 Migration Guide
      • iOS UIKit V3.0 Migration Guide
      • iOS SDK v7.0.0 Migration Guide
      • iOS SDK v6.0.0 Migration Guide
        • iOS SDK v6.9.0 Deprecation Note
        • iOS SDK v6.8.0 Deprecation Note
        • iOS SDK v6.7.0 Deprecation Note
        • iOS SDK v6.5.0 Deprecation Note
      • Android SDK v7.0.0 Migration Guide
      • Android SDK v6.0.0 Migration Guide
        • Android SDK v.6.20.0 Deprecation Note
        • Android SDK v.6.19.0 Deprecation Note
        • Android SDK v6.10.0 Deprecation Note
        • Android SDK v6.9.0 Deprecation Note
        • Android SDK v6.5.0 Deprecation Note
      • TS SDK v7.0.0 Migration Guide
      • TS SDK v6.0.0 Migration Guide
        • TS SDK v6.4.6 Deprecation Note
        • TS SDK v6.8.0 Deprecation Note
      • Web SDK v5.0.0 Migration Guide
      • Flutter SDK v7.0.0 Migration Guide
      • Flutter SDK beta Migration Guide
        • Flutter SDK v0.21.0 Deprecation Note
    • SDK API Reference
      • Server API Reference
      • iOS SDK API Reference (beta)
      • Android SDK API Reference (beta)
      • Flutter SDK API Reference
  • Miscellaneous
    • Support
      • Code of conduct
      • Managed UI Kit - Deprecation
      • Contribute
      • Security
    • Announcements Archive
Powered by GitBook
On this page
  • API
  • Social and Chat
  • SDKs
  • Poll
  • Console
  • Portal
  • Alternative solutions for unsupported features
  • Beta features
  • Frequent error types: Definition
  • General
  • Dashboard

Was this helpful?

Export as PDF

Technical FAQ

Explore our Technical FAQ for quick answers to common questions about Social Plus products. Get troubleshooting tips, best practices, and insights to optimize your technical experience.

Last updated 4 months ago

Was this helpful?

API

How do I create a large number of users in bulk on Social Plus?

To create a large number of users, it's advised to use the following endpoint: .

What should I use as the 'Authorization' token when I need to perform admin actions?

To obtain your admin token, please follow these steps on the :

  1. Navigate to "Settings" > "Admin Users"

  2. Click on the cogwheel icon.

This will provide you with the necessary 'Bearer' token to use for authorization when performing admin actions.

How can I retrieve the next page of data from an API?

To retrieve the next page of data from an API, you should use the "next" page token provided at the end of the initial page's results. This token should be appended to the endpoint to fetch the values for the next page.

Here's an example:

{
  "paging": {
    "next": "eyJza2lwIjoyMCwibGltaXQiOjEwfQ=="
  },
}

To get the next page of data, append the "next" token to the endpoint like this:

Next Page API Request:

curl --location --globoff 'https://api.sg.amity.co/api/v3/communities?filter=all&sortBy=lastCreated&options[token]=eyJza2lwIjoxMCwibGltaXQiOjEwfQ%3D%3D' \
--header 'accept: application/json' \
--header 'Authorization: Bearer xxx'
How can I upload a bulk list of blocklisted words?

You can upload a bulk list of blocklisted words using an example like this:

curl --location 'https://api.sg.amity.co/api/v3/blacklist/records' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxx' \
--data '{
  "regexs": [
    "word1",
    "word2",
    "word3"
  ],
  "isMatchExactWord": true
}'

In this example, replace "word1," "word2," and "word3" with the blocklisted words you want to upload in bulk. The request includes the necessary headers and data to add the specified words to the blocklist.

Setting isMatchExactWord to true makes the blocklisting more strict and will only block exact matches, while setting it to false makes the blocklisting more permissive and will block any occurrence of the blocklisted word or expression within a larger text.

API:

How can I modify my follow/unfollow settings?

You can adjust your follow/unfollow settings by making an API call to the following endpoint: . Please refer to the example below to understand the structure:

curl --location --request PUT 'https://api.sg.amity.co/api/v3/network-settings/social' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxx' \
--data '{
  "isFollowWithRequestEnabled": false
}'
How can I obtain higher-quality images?

For higher-quality images, you can enhance the resolution by simply adding ?size=full to the end of the URL.

Additionally, you have the flexibility to specify the size as "small," "medium," "large," or "full" based on your preferences.

What is a refreshToken?

A refreshToken is primarily employed by SDKs to validate the accessToken's validity. When using the API, obtaining a new token can be achieved by making a "register session" API call, eliminating the need to directly manage or use a refreshToken.

How long does the authentication token last?
How can I retrieve a list of communities I have joined using API?

To list the communities you've joined, use this API: https://api-docs.amity.co/#/Community/get_api_v3_communities.

Set the filter to 'member' to retrieve the communities you are a part of.

curl --location 'https://apix.sg.amity.co/api/v3/communities?filter=member&sortBy=lastCreated&options%5Blimit%5D=100' \
--header 'accept: application/json' \
--header 'Authorization: Bearer xxx'
How can I obtain a new access token once the authentication token has expired?
curl --location 'https://api.sg.amity.co/api/v3/authentication/token?userId=Amity'
--header 'accept: application/json'
--header 'x-server-key: xxx'

After receiving the new authentication token, you can use it to call the register session API to obtain a new access token.

curl --location 'https://apix.sg.amity.co/api/v4/sessions' \
--header 'accept: application/json' \
--header 'x-api-key: xxx' \
--header 'Content-Type: application/json' \
--data '{
  "userId": "Amity",
  "deviceId": "test",
  "authToken": "xxx"
}'
How can I obtain my authentication token?

For more information about obtaining an authentication token, please visit - Security.

curl --location 'https://api.sg.amity.co/api/v3/authentication/token?userId=Amity'
--header 'accept: application/json'
--header 'x-server-key: xxx'
How can I identify the posts I have reacted to?
Can I update just the metadata for a user without altering any other data?

Absolutely. To update a user's metadata, simply include 'metadata' in the body of your request, and it will be updated as specified. Below are sample cURL commands for reference:

curl --location --request PUT ‘https://api.eu.amity.co/api/v2/users’
–header ‘Content-Type: application/json’
–header ‘Authorization: Bearer xxx’
–data ‘{
“userId”: “Test”,
“metadata”: {
    “testmeta”: “usermetaUpdate”
    }
}’
How can I remove all posts from my system?

Please note, you may need to implement a script to automate the deletion of all posts.

What is the process for uploading audio files through Social Plus API?
Is there an API that can retrieve users by role?
curl --location --globoff 'https://apix.sg.amity.co/api/v3/communities/65e18cd9e66dfc75f3cd8f7d/users?memberships[]=member&roles[]=moderator&options%5Blimit%5D=10' \
--header 'accept: application/json' \
--header 'Authorization: Bearer xxx'
Can the upload API accept a file via URL instead of requiring a local file upload?

Unfortunately, our API is designed to support uploads of files from local storage only, not from URLs.

Why does my access token expire before the 30-day mark?

If you're using the same device ID when register session, it will cause the previously issued access token to become invalid.


Social and Chat

What is the purpose of targetType and targetId?

The targetType and targetId parameters are essential in query options for fetching posts from a specific feed.

  • targetType specifies the type of feed, which can be either ‘user’ or ‘community’.

  • targetId is the identifier for the specific feed, such as a userId for a user feed or a communityId for a community feed.

For a comprehensive explanation of these parameters and their usage, you can refer to the Social Plus SDK documentation on querying posts: https://docs.amity.co/amity-sdk/social/posts/query-post

Is it possible to sort posts within a community by engagement, similar to the global feed?

Currently, posts within a community can’t be sorted by engagement like the global feed. The available sorting options for community posts are ‘lastCreated’ and ‘firstCreated’.

For more information on how to implement these sorting options, you can refer to the Social Plus SDK documentation on querying posts: https://docs.amity.co/amity-sdk/social/posts/query-post

How can I query communities while excluding the ones that have been deleted?

To exclude deleted communities from your query results, you can use different methods depending on whether you’re using the API or SDK:

curl --location 'https://api.sg.amity.co/api/v3/communities?filter=all&isDeleted=false'
--header 'accept: application/json'
--header 'Authorization: Bearer xxx'
  1. Using the SDK: If you’re utilizing the SDK, you can set the includeDelete: false parameter. This option allows you to control whether deleted communities are included in the query results. For more information on how to use this, visit Social Plus SDK - Query Communities https://docs.amity.co/amity-sdk/social/communities/query-communities and adjust the includeDelete parameter as needed.

Is there a way to check which communities a user is part of?
curl --location 'https://api.sg.amity.co/api/v3/communities?filter=member' \
--header 'accept: application/json' \
--header 'Authorization: Bearer xxx'

Alternatively, you can use the SDK, as explained in Social Plus SDK - Query Communities https://docs.amity.co/amity-sdk/social/communities/query-communities.

Why does querying a list of objects only return 20 items in the response?

This behavior is due to pagination implemented in our API endpoints and functions, which default to returning 20 items per page. To access more items, you need to use the next page token (Please refer to the API section above) or the nextPage() function, depending on the SDK you’re utilizing.

For detailed information on how pagination works for different SDKs, please refer to the Live Objects/Collections section in our documentation here: https://docs.amity.co/amity-sdk/core-concepts/live-objects-collections

How can I update a community user’s role?

To update a user’s role in a community, you have two options:

curl --location 'https://api.sg.amity.co/api/v4/communities/657306a3189cef362ea99923/users/roles' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxx' \
--data '{
  "roles": [
    "community-moderator"
  ],
  "userIds": [
    "test"
  ]
}'
    1. Go to the specific community you wish to manage.

    2. Navigate to the 'Members' tab.

    3. Locate the user whose role you want to change.

    4. Click on the three dots button on the right-hand side.

    5. Select 'Change user role' from the options.

How can I remove members from a community?
How can I delete a community?

Here's how:

  • Navigate to the Community tab in the console.

  • Select "Communities."

  • Click on the name of the community you want to close.

  • Go to "Settings" page.

  • Scroll to the bottom where you will find the "Close Community" option.

I don't want the global feed to be empty for new users. How can I add some posts there?
What is metadata and its intended use?

Metadata consists of additional properties designed for custom fields. It serves to store supplementary data related to specific objects, like a user object, but isn't suitable for large amounts of data or information.

Why is my global feed empty?

The global feed aggregates posts from communities you have joined and from users you are following. If you haven’t joined any communities or followed any users, there will be no posts for the global feed to display.

What are the image requirements for uploading?

The supported image formats for upload are JPG and PNG. Each image must not exceed 1GB in size. A post can contain up to ten images.

Additionally, on iOS & Android UIKit v4, any uploaded images or videos in unsupported formats, like HEIC, will be automatically converted to a suitable format before uploading.

What are the videos requirements for uploading?

The supported video formats include 3gp, avi, f4v, flv, m4v, mov, mp4, ogv, 3g2, wmv, vob, webm, and mkv. Videos must not exceed 1 GB in size and should have a maximum duration of 2 hours. Each post can contain up to ten videos.

Additionally, on iOS & Android UIKit v4, any uploaded videos (with HEVC encoding or HDR capabilities) will be automatically converted to a suitable video format before uploading.

After enabling secure mode and obtaining the auth token, do I need to generate an access token? What should I do with the auth token if I’m using the SDK?

When using the SDK, you only need the auth token, which should be provided when a user logs in or creates an account. The SDK will manage the process thereafter. For more information, you can refer to the Social Plus SDK documentation on user creation: https://docs.amity.co/amity-sdk/core-concepts/user/create-user

Why are the posts on my global feed not sorted by the most recently created?
How can I retrieve a list of communities I have joined using the SDK?
How can I implement a file download feature?

To enable file downloading, incorporate the file ID into the download button's path. Use the following URL pattern, replacing "fileID" with the actual file ID:

Additionally, leverage the SDK to retrieve the file ID. This approach allows for a seamless integration of the download functionality into your application.

Please ensure that your message or post is of the file type.

Is it possible for the Social Plus UiKitChat Web UI Kit to automatically display the first chat upon user login, avoiding an empty space on the right?

To customize the UIKIT and make the first channel automatically open when a user logs in, you’ll need to make some changes to the code in the Amity-Social-Cloud-UIKit-Web-OpenSource/src/chat/components/RecentChat/index.js file.

Here are the steps to do that:

First, you’ll need to add an import statement for useState at the beginning of the file. Add this line to the top of the file along with other import statements:

import React, { useEffect, useState } from 'react';

Next, you’ll need to add some code inside the RecentChat component. Here’s the code you need to add:

const RecentChat = ({ onChannelSelect, onAddNewChannelClick, selectedChannelId }) => {
  // This line retrieves the list of channels, along with some additional information.
  const [channels, hasMore, loadMore] = useChannelsList();

  // This line initializes a state variable to keep track of whether the component has been initialized.
  const [hasInitialized, setHasInitialized] = useState(false);

  // This useEffect function will run when the component is first mounted and whenever 'channels' or 'hasInitialized' changes.
  useEffect(() => {
    // Check if the component hasn't been initialized and there are channels available.
    if (!hasInitialized && channels?.length) {
      // If the conditions are met, select the first channel in the list.
      onChannelSelect(channels[0]);
      
      // Mark the component as initialized to prevent this from happening again.
      setHasInitialized(true);
    }
  }, [channels, hasInitialized]);

  // The rest of your component code goes here...

  return (
    // JSX code for your component...
  );
};

By adding this code, you’re ensuring that when the component loads and there are channels available, it will automatically select the first channel in the list and set the hasInitialized state to true to prevent it from happening again.

How can I check if there exists a chat channel between two users?
How can I query posts using tags[]?

To query posts by tags, format your query like this: tags[]=tag1&tags[]=tag2.

curl --location --globoff 'https://api.sg.amity.co/api/v4/posts?targetId=65e18cd9e66dfc75f3cd8f7d&targetType=community&sortBy=lastCreated&tags[]=tag1&tags[]=tag2' \
--header 'accept: application/json' \
--header 'Authorization: Bearer xxx'
Is it possible to query comments by user ID?

Due to the design of our current product architecture, querying comments can only be performed using a post ID, not a user ID.


SDKs

What should I do if push notifications on iOS are not working?

If you already followed our docs here:

and it still doesn't work. Ensure you’ve covered all bases in this checklist:

• Verify that you’re using a production certificate.

• Check if the app_id matches the issued push certificate.

• Confirm the certificate hasn’t expired or been revoked.

• Make sure the app enables the “push notification” capability.

• Ensure the app is running in a production build (TestFlight/App Store).

• Run the app on a real device.

• Verify that the user hasn’t disabled push notifications for the app.

• Check if the user’s “Do Not Disturb” mode is activated.

Can I use my own realm in an iOS project?

No, we would recommend you use our realm which is included in the iOS SDK and UIkit. You can check the compatible version between the iOS SDK and Realm on our changelog page in the compatibility section and adjust the version accordingly.

For more information on the iOS SDK and UIKit, you can visit:

What type of certificate do I need to register push notification on iOS?

To register push notifications on iOS, you'll require a .p12 certificate. During the process, make sure to select "Apple Push Notification Service SSL (Sandbox & Production)"

Can I use a TypeScript CDN without a package manager?

It's not feasible to use a TypeScript CDN without a package manager. We recommend using package managers like npm or Yarn for support.

How can I find out if I have blocked a user?
How can I mark a message as read, signaling to the backend that the message has been acknowledged?
How do I retrieve poll posts using Flutter?

The current Flutter SDK only supports video, image, and file post types. Support for Poll posts is anticipated in future updates.


Poll

What is the method for obtaining the list of voters for a specific answer in a poll?
Can I add a poll post with other attachments?

No, you can either create a poll or add a different type of attachment, but not both together.

How can I view polls I've created in the Amity console?

Console

Where can I get my admin token?
  1. Navigate to "Settings" > "Admin Users"

  2. Click on the cogwheel icon

How do I grant console access to my team members?

First, your portal owner/head of admins needs to create the initial admin user on the console. Subsequent admin users can then create or grant access to additional team members. To do this, navigate to ‘Settings’ > ‘Admin Users’ and click on the ‘Create New Admin’ button located at the top right of the page. Fill in the username and password; team members can use these credentials to access the console.

Who can upload a PNS Certificate file to the Push Notification section and how is it done?

Initially, only the portal owner can upload the PNS Certificate. They will find the option to do so by clicking on the “+ Add new certificate” button, which is exclusively available to them for the first upload.

Why can't I retrieve posts from communities that a user has posted in when I use the 'User' option in the Post Management on Social Plus console?

The 'User' option, found under the 'Posts' section with 'User' selected in the dropdown menu, is specifically meant for fetching posts from a user's feed. Please note that it is not intended to retrieve posts from communities where a user has posted, based solely on the user's ID.

How can I obtain my API key and application region (endpoint)?

Please log in to your console, and you will find your API key and app region (endpoint) in the "Settings" > "Security" tab.

How do I change my password on the console?

Changing the console password should be done through your super admin. Follow the provided steps for assistance.

Why aren't conversation channels visible on the console?
Why am I unable to activate my third push notification certificate?

On our console, you can only activate one push notification certificate per platform. It’s not possible to activate two iOS or two Android push notification certificates simultaneously.


Portal

How do I create new app environments for different purposes, such as testing and production?

To create new app environments for various purposes, like testing or production, follow these steps:

  1. In the upper right corner, you'll find a "Create Application" button.

We recommend creating a separate application for each environment based on its specific purpose. This helps keep your testing and production environments organized and distinct.

How do I upgrade my application pricing plan?

Unfortunately, upgrading your application plan is not available at the moment. We recommend creating a new application with your desired plan instead. If you no longer need your previous applications, we can assist you in deleting them.

How can I change my organization name so that it reflects on my billing/invoice?

You can log in to your portal, navigate to the "Manage Payment" tab, and update the "Organization Name".


Alternative solutions for unsupported features

How can I implement a feature that allows users to save their favourite posts?

For this use case, you can use our user's object metadata field to store the postId of the posts the user wants to save so that they can be extracted and fetched later. The saved content can be accessed from the user's profile or a dedicated section within the user interface. The exact implementation and design of this feature can vary depending on the specific requirements and design of your application.

How can I add a Verified badge (blue tick) for users?

To add a Verified badge to a user’s profile, you need to update their user object’s metadata by including a ‘verified’ label. Once this label is in place, the frontend system can retrieve this information and display the Verified badge, styled as a blue tick or as per your custom design preferences. The verification process, governed by your frontend logic, ensures that the account meets your criteria for verification. After the account is verified according to these standards, you can then insert the ‘verified’ label into the metadata of the user’s profile.

Is there an option for users to accept or decline invitations to join a community?

While our product does not directly provide this feature, you can implement it on your end by updating the metadata of users. Invited users’ metadata can include an ‘invitedCommunity’ list. You can extract this list to query community details and display them. Once a user accepts or declines the invitation, the CommunityID will be removed from their metadata.

How to implement post sharing feature?
  1. To share a post, create a new post and specify the destination target for the shared content.

  2. In the metadata of the newly created post, include the original post's ID, for instance: "originalPostID": "abc".

  3. When retrieving the shared post, implement frontend logic to check for the presence of the "originalPostID" field in the metadata. If found, fetch the original post using the provided ID (e.g., by calling "get post") and display it on the frontend.

This approach enables you to maintain a reference to the original post, ensuring consistency in content, reactions, and comments.

How can I set up email notifications for specific actions in my community, such as when a post is flagged?

For email notifications, you can leverage our webhook events triggered when a post is flagged. You can find more details in the documentation here:

To receive email notifications based on this webhook event, you may need to implement this functionality using a third-party tool that can send email notifications when the webhook event is triggered, such as when a post is flagged.

How to pin a post?

While direct support for pinning posts is not available in Android UIKit versions below 4.0.0-beta14 and iOS UIKit versions below 4.0.0-beta15., you can implement a workaround by following these steps:

To Pin a Post:

  1. Add a new option to the three-dot menu of the post.

  2. Upon selection, implement logic to verify the user's role. If they possess a role that permits pinning posts, display the "Pin Post" option.

  3. When selected, use the Social Plus SDK to update the community object’s metadata to include the pinned post.

To display the Pinned Post:

  1. When querying the community feed, you'll also retrieve the community object.

  2. Extract the “pinPostID” from the community object’s metadata.

  3. Use the Social Plus SDK’s function to fetch the post using the “pinPostID”.

  4. Place this post object at the top of the community feed list array, ensuring it appears first.

How can I limit channel creation permissions exclusively to admins?

There are two approaches:

1: Hiding the Channel Creation Button on the Front End

This is a simpler method where you can modify the user interface to hide or disable the channel creation button. This approach is straightforward and can be effective for casual users. However, it has a significant limitation:

  • Security Concern: Even if the button is hidden on the frontend, tech-savvy users might still be able to create channels using the API directly. This means that while the option may not be visible in the user interface, it’s not truly restricted at the system level.

2: Using the Pre-Hook Event Feature in the Social Plus Max Package

Can I filter to display only video posts from the global feed?
Why does the audio message length display as 00:00?

Currently, SDK does not supply the duration of audio files. Nonetheless, there is a solution to show the audio duration:

  1. Upon finishing the audio recording, record the audio's duration within the message's metadata.

  2. To reveal the audio duration, retrieve this detail from the message metadata.

How can I retrieve community posts by user ID?

Beta features

How do you implement push notifications in Web React?

For a complete list of available webhook events, please visit: https://api-docs.amity.co/#/WebhookEvent

Why does content search return fewer posts than the user has?

Content search will only return posts that were created after the content search feature was enabled. Posts created before the enablement will not be included in the content search response.

Please be aware that only posts created after the feature was enabled will be part of the search results.

How do I find posts using hashtags?

When creating posts, you can include hashtags as you normally would. To search for these hashtags, we suggest using our content search feature, and including "hashtagList" in your query.

"hashtagList":[
     "#tags1",
     "#tags2",
     "#tags3"
   ]
How can a user be informed when I begin following them?

To inform a user that they have gained a new follower through the API server, you can make use of Social Plus's Webhooks. Webhooks enable the sending of real-time notifications for specific events, such as a user beginning to follow someone else. For comprehensive guidance on configuring and implementing Webhooks within Social Plus, please consult the resources below:

For notifications related to follow events, you can utilize either of the following webhooks:


Frequent error types: Definition

Why am I encountering this error “Error: Connect client first”?

This error typically arises when an SDK function is called before successfully establishing a connection to the Social Plus session. To resolve this, ensure that you call UserRepository related functions only after the session state is set to ‘established’. You can monitor the session state using the following code snippet:

const [sessionState, setSessionState] = useState('');

useEffect(() => {
  return Client.onSessionStateChange((state: Amity.SessionStates) => {
    setSessionState(state);
  });
}, []);

This code tracks the session state, and you should proceed with calling SDK functions once the state confirms the session is established.

I received the error “Query Token is invalid” What should I pass as the query token in Swagger?

The error indicates a problem with the pagination token. In the result response, a pagination token is provided at the end of the first page. You should use this token to fetch subsequent pages. The response typically includes a "paging" section with "next" and "previous" strings, like this:

"paging": {
    "next": "string",
    "previous": "string"
}

Use the value from the ‘next’ or ‘previous’ string as your query token to access additional pages.

What does the error "Unable to use SDK while the SDK is logging in" mean?

This error occurs when the SDK login process is in progress while other actions are attempted. To resolve this, you should ensure that other actions are initiated only after the login process has successfully completed.

What does the error "RateLimit Exceed" mean?

Our API/function has a rate limit of 100 calls per user within a 5-second window. To avoid encountering this error, it is important to carefully monitor and control the number of calls made to ensure they do not exceed this defined limit.

What should I do when I encounter error code 400314 while attempting to post content with an image?

If you've encountered error code 400314 while trying to post content containing an image, it is likely related to our image moderation settings. To address this issue, follow these steps:

Please be cautious not to set the confidence level too low, as it may result in the blocking of all images.

Why am I unable to post a link and receiving error 400309?
What causes error 400311, also known as RPCRateLimitError, and how can it be fixed?

Error 400311, known as RPCRateLimitError, indicates that the API/function call rate limit has been exceeded, with a cap of 100 calls per user within a 5-second window. To resolve this, it's advisable to check for any processes that might be making repeated API or function calls in a loop, which could be causing the limit to be reached.


General

Can a user be restored after deletion?
How can I delete inactive users?

To delete inactive users, you can make use of the following API call:

Here's an example:

curl --location --request DELETE 'https://api.sg.amity.co/api/v4/users/test2?deleteAll=true&markMessageDeleted=false&hardDeletePost=false&hardDeleteComment=false' \
--header 'accept: application/json' \
--header 'Authorization: Bearer xxx'

After the user is deleted, their display name will be automatically changed to 'Deleted user'. Please be aware that once users are deleted, there is no way to restore them.

What are the consequences for a user who is globally banned?

When a user is globally banned by an admin, they lose the ability to authenticate with ASC and are automatically removed from all their existing channels. Additionally, all of the banned user’s messages are deleted, although if these messages are already cached in the SDK, they will only disappear upon refreshing.

However, the user’s social content, including posts, comments, and community memberships, remains intact.

The globally banned user will be unable to authenticate with Social Plus’s network again until the global ban is lifted.

How are concurrent connections counted when a user opens multiple tabs?

Concurrent connections (CCU) are counted on a per-tab basis within the same web browser on the same device. If a user opens multiple tabs and all are active simultaneously, each active tab is counted as one concurrent connection.

However, browsers may close WebSocket connections for inactive tabs, so the CCU count typically reflects the number of active connections at any given time. For instance, if only one tab is active at a time, only one CCU is recorded.

Is there a dark theme option available in Social Plus?

Social Plus does not fully support a dark theme at the moment. However, you can customize the UI to create a dark theme using our open-source UIKit, which offers flexible UI customization options.

How do I delete an unused application?
What defines an inactive user?

Inactive users are defined as the total unique users, identified by their user IDs, who have registered within the Social Plus system but have not established any connection to any Social Plus network during the specific month for which the Monthly Active User (MAU) count is being calculated. This includes users who may have registered at any time in the past, such as someone who signed up in January but has been inactive since then, and are still considered inactive in the subsequent months like May.

Where can I download Figma files?

You can download Figma files from the following links:

Can Social Plus accommodate multi-tenant systems?

Social Plus can support multi-tenant systems by allowing the creation of multiple applications. Each application functions independently, maintaining its own separate data and content. This setup ensures that users cannot access content from other applications, effectively facilitating a multi-tenant environment.

Can Social Plus be integrated with an external backend for file uploads instead of using Social Plus's servers?

Currently, Social Plus requires that all files be uploaded to its servers through the SDK/API. Using an external backend for file uploads is not supported.

Is there a way to obtain account-wide data, not limited to individual apps?

Regrettably, metrics such as Monthly Active Users (MAUs) and engagement figures are only available on an individual application basis. These statistics can be accessed through our dashboard and console.

How can I include HTML tags, such as <b> or <i>, when sending a message or creating a post on Social Plus via API?

Social Plus places a high priority on backend security to protect against injection attacks, including XSS, with all security measures undergoing periodic penetration testing. It's important to note that the frontend application is also susceptible to XSS attacks, which are beyond our control.

The Social Plus API processes post messages as plain text and does not natively support rich text formatting, like bold, italic, or hyperlinks. This design choice is made to safeguard data security and integrity and to mitigate the risk of cross-site scripting (XSS) attacks.

Nonetheless, the capability to support text formatting rests with the client-side editor and message renderer. You have the option to implement a system on your frontend that accommodates text formatting. For instance, employing a markdown language to encase text with specific symbols allows your frontend to identify and render the text according to the intended formatting.

Are .gif files supported by Social Plus?

Currently, .gif files are not supported for posts or messages on Social Plus.


Dashboard

What is lurking users?

Lurking users refer to individuals who solely view content without actively participating by posting, commenting, or engaging with the group or other users.

How can I access metrics regarding conversations, like the number of messages sent per day?

This data can be found on our dashboard. Please go to the Channels section, where you'll find the "New Messages by Day" widget.

Example: .

The authentication token has a duration of 10 minutes, and it must be used within that specific time frame. For further information on secure mode and authentication tokens, please refer to this section:

You will have to get a new authentication token after the expiration of the current one, you can call the following API endpoint: .

API:

You can utilise the following API to obtain an authentication token: .

While there isn't a specialized API exclusively for tracking your reactions to posts, you can utilize the "get list of reactions" API. This API, accessible at , enables users to see a list of reactions along with the users who reacted. To determine if you've reacted to a specific post, you'll need to query this API and check if you are listed among the reactors.

To delete all posts in your system, first retrieve the posts from community or user feeds using the API found at .

After obtaining the posts, utilize the delete post API to remove them, which is available at _.

To upload audio files, it is advisable to use the upload API available at .

Yes, you can use this API to filter and find users within a community based on their role, such as 'moderator': .

Using the API: When querying communities through the API at: , include the parameter isDeleted: false in your request. This will filter out any deleted communities from the results.

Due to privacy and design considerations, it’s not possible to query communities joined by other users, even if you are an admin. However, the current user can query the communities they have joined themselves. This can be done through the API, as detailed at: , by filtering for membership.

Using API: with the following cURL command:

For Admin Users Using the : You can modify a user's role directly within the console. Follow these steps:

Members can be removed either through the SDK, as detailed here: https://docs.amity.co/amity-sdk/social/communities/community-moderation#remove-members, or by using the API, found at: .

You can delete a community using the API provided here: Alternatively, for admin users, you can also close a community directly from the .

You can implement an auto-join function, which can be called after a new user is created. To achieve this, use the join community API, which you can find here: . By doing this, existing posts in those particular communities will be displayed as the initial content in the global feed for new users.

Our global feed offers multiple sorting options, including sorting by factors such as Engagement Rate, Time of Posting, and Updates. Your feed may be currently sorted by other factors, if you wish to update or adjust the feed configuration, please reach out to our support team at

For more detailed information on custom post ranking, you can also refer to our documentation at .

To list the communities you've joined, you can use the queryCommunities function with the filter set to membership. For more information, refer to the documentation at .

Path:

We recommend using our conversation channel, which offers the capability to check for an existing channel between users. For details, see .

• Ensure that your APNs authentication key is uploaded to Firebase:

s

For detailed instructions on setting up an iOS push certificate, please consult this documentation: .

To check if you have blocked a user, refer to the "Blocked Users List" in the Social Plus documentation. This section provides instructions on how to view and manage your list of blocked users. For more information, you can visit:

You can mark messages as read using the function. After marking a message as read, you may proceed with actions such as notifications or updates to the backend. For detailed guidance, refer to the documentation on .

To get the voters for a specific answer in a poll, you can utilize the API endpoint provided: . This API will return the user IDs of the voters along with their answers in the response.

Currently, polls are not viewable directly through the console. However, if you have access to the Social Plus portal at , you can find your polls by navigating to My Dashboard > Posts and selecting "Poll" from the dropdown menu in the top right-hand side. This will display your poll posts.

To obtain your admin token, please follow these steps on the :

Conversation channels are intentionally not accessible on the console by design. For further information on channel characteristics and this design choice, please visit .

Log in to your .

If you are using the Social Plus Max package, a more robust solution is available through the . This feature allows you to set up custom rules and control various aspects of your application, including channel creation.

Although Social Plus doesn't offer a built-in feature to filter posts by type directly in the global feed, you have the flexibility to create a custom filter on your frontend. Utilize the API to query posts by type at , then display the filtered results on your frontend.

You can utilize our to filter posts by using the postedUserId parameter

To implement push notifications in Web React JS, you can utilize our . These events provide real-time updates on new posts and comments, including sender and receiver information. You can use this data to customize your push notifications with specific labels, details, and payload.

You can find comprehensive guidance on how to utilize this feature in our documentation here:

For notifications when a follow is created:

For notifications when a follow request is made: . This is applicable if you have enabled the follow request feature. For additional details on the user connection method concept, please visit:

Confirm whether you have enabled image moderation in your console settings. You can do this by accessing the and checking the image moderation settings under Settings > Image Moderation tab.

Adjust the confidence level in the console to an appropriate setting. For detailed instructions, please refer to this link: .

If you are curious about how the confidence level functions and have questions, you can find answers in our FAQ section: .

This error occurs because we have link moderation in place. You can manage this feature in the by going to the "Moderation" > "Allow list" tab. If the feature is enabled, links that have not been added to the allow list will not be permitted to be posted in the community or chat.

Once a user is deleted using the API : , it is not possible to undo this action. The user is permanently removed.

To delete an unused application, please contact our support team at , and they will assist you in fulfilling your request.

For Social Figma file:.

For Chat Figma file: .

For an in-depth guide to the dashboard, you can refer to the. For console access, visit and navigate to the usage page.

https://api.amity.co/api/v3/files/{fileId}/download?size=full
https://docs.amity.co/analytics-and-moderation/console/settings/security#secure-mode
https://api-docs.amity.co/#/Authentication/get_api_v3_authentication_token
https://api-docs.amity.co/#/Session/post_api_v4_sessions
https://api-docs.amity.co/#/Authentication/get_api_v3_authentication_token
https://api-docs.amity.co/#/Reaction/get_api_v3_reactions
https://api-docs.amity.co/#/Post/get_api_v3_posts
https://api-docs.amity.co/#/Post%20v4/delete_api_v4_posts__postId
https://api-docs.amity.co/#/File/post_api_v4_files
https://api-docs.amity.co/#/Community/get_api_v3_communities__communityId__users
Query communities API
Query communities API
Add roles to community users API
Console
Delete community users API
Delete Community
API
Social Plus console
Join community API
support.asc@amity.co
Custom post ranking
https://docs.amity.co/amity-sdk/social/communities/query-communities
https://api.region.amity.co/api/v3/files/fileID
Create Conversation Channel
Push notification certificate setup
Register/Unregister push notification
Link
Social Plus SDK iOS Changelogs
Social Plus UIKit iOS Changelog
iOS Push Notification Certificate Setup
https://docs.amity.co/amity-sdk/social/block-and-unblock-user#blocked-users-list
Mark Message Read
Start/Stop Reading a Subchannel
Get a poll answer
https://portal.amity.co/
Social Plus console
Channel Characteristics
Social Plus portal
https://docs.amity.co/developers/beta-features/real-time-events
https://api-docs.amity.co/#/WebhookEvent
Pre-Hook Event feature 1
https://api-docs.amity.co/#/Post/get_api_v3_posts
search post API
webhook events
https://docs.amity.co/developers/beta-features/content-search
Real-time Events with Social Plus (Beta Features)
Follow Did Create Webhook
Follow Did Request Webhook
https://docs.amity.co/amity-sdk/social/follow-unfollow#user-connection-method-concept
console
Image Moderation Settings
Image Moderation FAQ
console
Delete user API
support.asc@amity.co
Social Plus Social UI Kit Figma
Social Plus Chat UI Kit Figma
Social Plus Portal Dashboard Guide
https://asc.amity.co/
Register a session
Social Plus console
https://api-docs.amity.co/#/Moderation/post_api_v3_blocklists
https://api-docs.amity.co/#/Network%20Setting/put_api_v3_network_settings_social