Invoke a Callback Before Adding a Member to a Group

Last updated: 2020-06-10 18:37:40

    Feature Description

    This API enables the app backend to promptly monitor (and reject if so configured) group members’ requests to add other users to the group.

    Precautions

    • To enable this callback, you must configure the callback URL and toggle on the corresponding callback protocol. For details on the configuration method, see Third-Party Callback Configuration.
    • The callback route is from the IM backend to the app backend, where the IM backend sends HTTP POST requests.
    • After receiving a callback request, the app backend must check whether SDKAppID in the request URL is consistent with its own SDKAppID.
    • For other security-related matters, see Third-Party Callback Overview: Security Considerations.

    Triggering Scenarios

    • An app user sends a request for adding another user to the group through the user’s client.
    • The app admin adds the user to the group through this RESTful API.

    Callback Triggering Time

    The callback is triggered before the IM backend adds the target user to the group. (If relationship chain hosting exists and the app configures friend relationship verification in IM, this callback will be triggered after the friend relationship is verified as successful.)

    API Description

    Request URL example

    In the following example, the callback URL configured in the app is https://www.example.com.
    Example:

    https://www.example.com?SdkAppid=$SDKAppID&CallbackCommand=$CallbackCommand&contenttype=json&ClientIP=$ClientIP&OptPlatform=$OptPlatform

    Request parameters

    Parameter Description
    https The request protocol is HTTPS, and the request method is POST.
    www.example.com The callback URL.
    SdkAppid The SDKAppID assigned by the IM console when an app is created.
    CallbackCommand Its value is fixed to Group.CallbackBeforeInviteJoinGroup.
    contenttype Its value is fixed to JSON.
    ClientIP The client IP address, for example, 127.0.0.1.
    OptPlatform The client platform. For information on the possible values, see the description of the OptPlatform parameter in Third-Party Callback Overview: Callback Protocols.

    Request packet example

     {
        "CallbackCommand": "Group.CallbackBeforeInviteJoinGroup",
        "GroupId": "@TGS#2J4SZEAEL",
        "Type": "Public",
        "Operator_Account": "leckie",
        "DestinationMembers": [
            {
                "Member_Account": "jared"
            },
            {
                "Member_Account": "leckie"
            }
        ]
    }

    Request packet fields

    Field Type Description
    CallbackCommand String Callback command
    GroupId String ID of the group to which a user is added
    Type String The type of the group to be created. For details, see Group Types. The group type can be Public.
    Operator_Account String Request operator’s UserID
    DestinationMembers Array Set of UserID s to be added to the group

    Response packet example

    Allowing all users to join a group

    The app backend allows all users in requests to join the group.

    {
        "ActionStatus": "OK",
        "ErrorInfo": "",
        "ErrorCode": 0 // Indicates that the system can continue to process requests for adding users to the group.
    }

    Rejecting some users to join a group

    The app backend rejects some users in requests to join the group and returns these users’ UserID s in RefusedMembers_Account.

    {
        "ActionStatus": "OK",
        "ErrorInfo": "",
        "ErrorCode": 0,
        "RefusedMembers_Account": [ // List of rejected users
            "jared"
        ]
    }

    Response packet fields

    Field Type Attribute Description
    ActionStatus String Required The request processing result. OK: succeeded. FAIL: failed.
    ErrorCode Integer Required The error code.
    ErrorInfo String Required Error information.
    RefusedMembers_Account Array Optional The set of rejected users’ IDs.

    References

    Was this page helpful?

    Was this page helpful?

    • Not at all
    • Not very helpful
    • Somewhat helpful
    • Very helpful
    • Extremely helpful
    Send Feedback
    Help