Updating Friends

Last updated: 2021-01-26 20:00:02

    Feature Description

    • This API is used to update the relationship chain data of multiple friends of a user at a time.
    • You are advised to update multiple friends of a user at a time to avoid write conflicts caused by concurrent writes.

    API Call Description

    Sample request URL

    https://console.tim.qq.com/v4/sns/friend_update?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json

    Request parameters

    The following table only describes the modified parameters when this API is called. For more information on other parameters, please see RESTful API Overview.

    Parameter Description
    v4/sns/friend_update Request API.
    sdkappid The SDKAppID assigned by the IM console when an application is created.
    identifier The app administrator account. For more information, please see the App Admin section in Login Authentication.
    usersig The signature generated by the app administrator account. For more information on how to generate the signature, please see Generating UserSig.
    random A random 32-bit unsigned integer ranging from 0 to 4294967295.

    Maximum call frequency

    200 calls per second

    Sample request packets

    • Basic request
      {
        "From_Account":"id",
        "UpdateItem":
        [
            {
                "To_Account":"id1",
                "SnsItem":
                [
                    {
                        "Tag":"Tag_SNS_IM_Remark",
                        "Value":"remark1"
                    }
                ]
            }
        ]
      }
    • Complete request
      {
        "From_Account":"id",
        "UpdateItem":
        [
            {
                "To_Account":"id1",
                "SnsItem":
                [
                    {
                        "Tag":"Tag_SNS_IM_Remark",
                        "Value":"remark1"
                    },
                    {
                        "Tag":"Tag_SNS_IM_Group",
                        "Value":
                        [
                            "group1",
                            "group2"
                        ]
                    },
                    {
                        "Tag":"Tag_SNS_Custom_Test",
                        "Value":"test"
                    }
                ]
            }
        ]
      }
    • Batch request
      {
        "From_Account":"id",
        "UpdateItem":
        [
            {
                "To_Account":"id1",
                "SnsItem":
                [
                    {
                        "Tag":"Tag_SNS_IM_Remark",
                        "Value":"remark1"
                    }
                ]
            },
            {
                "To_Account":"id2",
                "SnsItem":
                [
                    {
                        "Tag":"Tag_SNS_IM_Remark",
                        "Value":"remark2"
                    },
                    {
                        "Tag":"Tag_SNS_IM_Group",
                        "Value":
                        [
                            "group1",
                            "group2"
                        ]
                    }
                ]
            },
            {
                "To_Account":"id3",
                "SnsItem":
                [
                    {
                        "Tag":"Tag_SNS_IM_Remark",
                        "Value":"remark3"
                    },
                    {
                        "Tag":"Tag_SNS_IM_Group",
                        "Value":
                        [
                            "group3"
                        ]
                    },
                    {
                        "Tag":"Tag_SNS_Custom_Test",
                        "Value":"test"
                    }
                ]
            }
        ]
      }

    Request packet fields

    Field Type Required Description
    From_Account String Yes UserID of the account for which to update relationship chain data.
    UpdateItem Array Yes An object array of friends to be updated.
    To_Account String Yes UserID of a friend.
    SnsItem Array Yes An object array of the relationship chain data to be updated.
    Tag String Yes The name of a relationship chain field to be updated. Users are only allowed to update the remarks, group, and custom fields of relationship chain. For more information on relationship chain fields, please see the Friend Lists in Relationship Chain Management.
    Value Array/String/Integer Yes The value of a relationship chain field. For information on value types, please see the Friend Lists section in Relationship Chain Management.

    Sample response packets

    • Response to a basic or complete request
      {
        "ResultItem":
        [
            {
                "To_Account":"id1",
                "ResultCode":0,
                "ResultInfo":""
            }
        ],
        "ActionStatus":"OK",
        "ErrorCode":0,
        "ErrorInfo":"",
        "ErrorDisplay":""
      }
    • Response to a batch request
      {
        "ResultItem":
        [
            {
                "To_Account":"id1",
                "ResultCode":0,
                "ResultInfo":""
            },
            {
                "To_Account":"id2",
                "ResultCode":30011,
                "ResultInfo":"Err_SNS_FriendUpdate_Group_Num_Exceed_Threshold"
            },
            {
                "To_Account":"id3",
                "ResultCode":30002,
                "ResultInfo":"Err_SNS_FriendImport_SdkAppId_Illegal"
            }
        ],
        "Fail_Account":["id2","id3"],
        "ActionStatus":"OK",
        "ErrorCode":0,
        "ErrorInfo":"",
        "ErrorDisplay":""
      }

    Response packet fields

    Field Type Description
    ResultItem Array The result of updating friends, which is an array of UserIDs and corresponding results.
    To_Account String UserID of the friend that you requested to update.
    ResultCode Integer The result of To_Account. 0: successful. Other values: failed. For details on non-zero results, please see Error Codes.
    ResultInfo String The error description of To_Account. This field is empty when the request succeeds.
    Fail_Account Array A list of users that failed to be updated. This field is only returned when at least one user fails.
    ActionStatus String Request result. OK: successful. FAIL: failed.
    ErrorCode Integer Error code. 0: successful. Other values: failed. For details on non-zero results, please see Error Codes.
    ErrorInfo String Detailed error information.
    ErrorDisplay String Detailed information displayed on the client.

    Error Codes

    The returned HTTP status code for this API is always 200 unless a network error (such as error 502) occurs. The specific error code and details can be found in the response fields ResultCode, ResultInfo, ErrorCode, and ErrorInfo.
    For public error codes (60000 to 79999), please see Error Codes.
    The following table describes the error codes specific to this API:

    Error Code Description
    30001 Incorrect request parameter. Check your request according to the error description.
    30002 The SDKAppID does not match.
    30003 The requested user account does not exist.
    30004 The request requires app administrator permissions.
    30005 The relationship chain field contains sensitive words.
    30006 Internal server error. Please try again.
    30007 Network timeout. Please try again later.
    30008 A write conflict has occurred due to concurrent writes. You are advised to use batch processing.
    30011 The maximum number of friend lists has been reached.

    API Debugging Tool

    Use the RESTful API online debugging tool to debug this API.

    References