Skip to content

Latest commit

 

History

History
316 lines (263 loc) · 8.41 KB

File metadata and controls

316 lines (263 loc) · 8.41 KB

Add Reaction to Message imbot.v2.Chat.Message.Reaction.add

{% note tip "" %}

If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the MCP server so that the assistant can utilize the official REST documentation.

{% endnote %}

Scope: imbot

Who can execute the method: owner of the registered bot

The method imbot.v2.Chat.Message.Reaction.add adds a bot reaction to a message.

Method Parameters

{% include Note on required parameters %}

#| || Name Type | Description || || botId* integer | Bot ID || || botToken string | Unique authorization token for the bot. Required for webhook authorization, not needed for OAuth.

Pass the same botToken that was specified during the chat bot registration || || messageId* integer | Message ID || || reaction* string | Reaction code. A list of available codes is described below || |#

Available Reaction Codes {#reactions}

#| || Code | Description || || like | Like || || dislike | Dislike || || faceWithTearsOfJoy | Laughing to tears || || redHeart | Heart || || neutralFace | Indifferent || || fire | Fire! || || cry | Sad || || slightlySmilingFace | Smiling || || winkingFace | Winking || || laugh | Laughing || || kiss | Admiring || || wonder | Shocked || || slightlyFrowningFace | Frowning || || loudlyCryingFace | Crying || || faceWithStuckOutTongue | Tongue out || || faceWithStuckOutTongueAndWinkingEye | Teasing || || smilingFaceWithSunglasses | Cool || || confusedFace | Not sure || || flushedFace | Embarrassed || || thinkingFace | Doubting || || angry | Angry || || smilingFaceWithHorns | Smirking || || faceWithThermometer | Sick || || facepalm | No comment || || poo | Yuck || || flexedBiceps | Strong || || clappingHands | Awesome || || raisedHand | High five || || smilingFaceWithHeartEyes | Beautiful || || smilingFaceWithHearts | Love it || || pleadingFace | Begging || || relievedFace | Zen || || foldedHands | Thank you || || okHand | OK || || signHorns | Rock! || || loveYouGesture | All good || || clownFace | Clown || || partyingFace | Congratulations || || questionMark | Question || || exclamationMark | Attention || || lightBulb | Idea || || bomb | Bomb || || sleepingSymbol | Sleeping || || crossMark | Cancel || || whiteHeavyCheckMark | Done || || eyes | Eyes || || handshake | Deal || || hundredPoints | Support || |#

The list of reactions may expand or contract without prior notice.

Code Examples

{% include Note on examples %}

{% list tabs %}

  • cURL (Webhook)

    curl -X POST \
      -H "Content-Type: application/json" \
      -H "Accept: application/json" \
      -d '{"botId":456,"botToken":"my_bot_token","messageId":789,"reaction":"like"}' \
      https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/imbot.v2.Chat.Message.Reaction.add
  • cURL (OAuth)

    curl -X POST \
      -H "Content-Type: application/json" \
      -H "Accept: application/json" \
      -d '{"botId":456,"messageId":789,"reaction":"like","auth":"**put_access_token_here**"}' \
      https://**put_your_bitrix24_address**/rest/imbot.v2.Chat.Message.Reaction.add
  • JS

    try {
      const response = await $b24.callMethod('imbot.v2.Chat.Message.Reaction.add', {
        botId: 456,
        messageId: 789,
        reaction: 'like',
      });
    
      const { result } = response.getData();
      console.log('result:', result);
    } catch (error) {
      console.error('Error:', error);
    }
  • Python

    from b24pysdk.errors import BitrixAPIError, BitrixSDKException
    
    try:
        bitrix_response = client.imbot.v2.chat.message.reaction.add(
            bot_id=456,
            message_id=789,
            reaction="like",
        ).response
        result = bitrix_response.result
        print(result)
    except BitrixAPIError as error:
        print(
            "Bitrix API error",
            f"error: {error.error}",
            f"error_description: {error.error_description}",
            sep="\n",
        )
    except BitrixSDKException as error:
        print(f"Bitrix SDK error: {error.message}")
    except Exception as error:
        print(f"Unexpected error: {error}")
  • PHP

    try {
        $response = $b24Service
            ->core
            ->call(
                'imbot.v2.Chat.Message.Reaction.add',
                [
                    'botId' => 456,
                    'messageId' => 789,
                    'reaction' => 'like',
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'result: ' . print_r($result, true);
    } catch (Throwable $exception) {
        error_log($exception->getMessage());
        echo 'Error: ' . $exception->getMessage();
    }
  • BX24.js

    BX24.callMethod(
        'imbot.v2.Chat.Message.Reaction.add',
        {
            botId: 456,
            messageId: 789,
            reaction: 'like',
        },
        function(result) {
            if (result.error()) {
                console.error(result.error().ex);
            } else {
                console.log(result.data());
            }
        }
    );
  • PHP CRest

    require_once('crest.php');
    
    $result = CRest::call(
        'imbot.v2.Chat.Message.Reaction.add',
        [
            'botId' => 456,
            'messageId' => 789,
            'reaction' => 'like',
        ]
    );
    
    if (!empty($result['error'])) {
        echo 'Error: ' . $result['error_description'];
    } else {
        echo 'Reaction added';
    }
  • Go

    // client and ctx are already created — see the Go SDK section
    res, err := client.Core().Call(ctx, "imbot.v2.Chat.Message.Reaction.add", b24.Params{
    	"botId":     456,
    	"botToken":  "my_bot_token",
    	"messageId": 789,
    	"reaction":  "like",
    })
    if err != nil {
    	return fmt.Errorf("imbot.v2.Chat.Message.Reaction.add: %w", err)
    }
    
    var item struct {
    	Result bool `json:"result"`
    }
    if err := json.Unmarshal(res.Result, &item); err != nil {
    	return fmt.Errorf("parse response: %w", err)
    }
    fmt.Println(item.Result)

{% endlist %}

Response Handling

HTTP Status: 200

{
    "result": {
        "result": true
    },
    "time": {
        "start": 1728626400.123,
        "finish": 1728626400.234,
        "duration": 0.111,
        "processing": 0.045,
        "date_start": "2024-10-11T10:00:00+02:00",
        "date_finish": "2024-10-11T10:00:00+02:00"
    }
}

Returned Data

#| || Name Type | Description || || result object | Result of the operation || || result.result boolean | true if the reaction was successfully added || || time time | Information about the request execution time || |#

Error Handling

HTTP Status: 400, 403

{
    "error": "REACTION_NOT_FOUND",
    "error_description": "Reaction not found"
}

{% include notitle Error Handling %}

Possible Error Codes

#| || Code | Description | Value || || BOT_TOKEN_NOT_SPECIFIED | Bot token is not specified | botToken is not provided. Required for webhook authorization || || BOT_ID_REQUIRED | Bot ID is required | botId is not provided || || BOT_NOT_FOUND | Bot not found | Bot not found || || BOT_OWNERSHIP_ERROR | Bot is registered by another application | Bot is registered by another application || || ACCESS_DENIED | Access denied | Bot is not a participant in the chat with this message || || REACTION_NOT_FOUND | Reaction not found | A non-existent reaction code was specified || || REACTION_ALREADY_SET | Reaction already set | This reaction is already set by the bot on this message || |#

{% include System Errors %}

Continue Learning