# 準備留言表情回應

Canonical URL: https://sosoapi.ai/zh-hant/docs/mcp/reaction-prepare

`sosoapi_reaction_prepare`

在獨立授權下，核對確切留言／版本及預期 LIKE 狀態。IG 操作帳戶的讚好狀態維持未知。只回傳 token，不會發佈內容。

## Profiles 及連接方式

Profiles: full

Transports: stdio, http

Profile 只影響工具可見性，不會授予權限。HTTP 不提供本機檔案上傳。SOSOAPI_OUTPUT_SCHEMAS=1 會宣告輸出 schema；兩種模式均會回傳 structured results。

## 權限及改動

MCP annotations 只提供工具發現提示，並非存取控制保證；實際呼叫仍須通過登入、角色、資源及能力檢查。

```json
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
```

`/community-engagement-api/reactions/prepare` — agent:engage; synchronous_http_response

## 輸入欄位

```json
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "social_account_id": {
      "type": "string",
      "format": "uuid"
    },
    "social_comment_id": {
      "type": "string",
      "format": "uuid"
    },
    "expected_comment_version": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "operation": {
      "type": "string",
      "enum": [
        "like",
        "unlike"
      ]
    },
    "reaction_type": {
      "type": "string",
      "enum": [
        "LIKE"
      ]
    },
    "idempotency_key": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "workspace_id",
    "social_account_id",
    "social_comment_id",
    "expected_comment_version",
    "operation",
    "reaction_type",
    "idempotency_key"
  ],
  "additionalProperties": false
}
```

## 結構化輸出

此 schema 描述成功工具結果的 structuredContent。MCP envelope 亦包括 content，失敗時可能設定 isError；請勿將文字收據或已接受的請求視為平台終態。權限及重試規則請參閱對應的 API 操作。

```json
{
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "community-reactions.v1"
    },
    "prepare_token": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "reviewed_digest": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "review": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "social_account_id": {
              "type": "string",
              "format": "uuid"
            },
            "social_comment_id": {
              "type": "string",
              "format": "uuid"
            },
            "social_post_id": {
              "type": "string",
              "format": "uuid"
            },
            "provider_page_id": {
              "type": "string"
            },
            "provider_post_id": {
              "type": "string"
            },
            "provider_comment_id": {
              "type": "string"
            },
            "expected_comment_version": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "operation": {
              "type": "string",
              "enum": [
                "like",
                "unlike"
              ]
            },
            "reaction_type": {
              "type": "string",
              "const": "LIKE"
            },
            "desired_liked": {
              "type": "boolean"
            },
            "current_liked": {
              "type": "boolean"
            },
            "accepted_app_id": {
              "type": "string"
            },
            "oauth_generation_id": {
              "type": "string",
              "format": "uuid"
            },
            "grant_id": {
              "type": "string",
              "format": "uuid"
            }
          },
          "required": [
            "social_account_id",
            "social_comment_id",
            "social_post_id",
            "provider_page_id",
            "provider_post_id",
            "provider_comment_id",
            "expected_comment_version",
            "operation",
            "reaction_type",
            "desired_liked",
            "current_liked",
            "accepted_app_id",
            "oauth_generation_id",
            "grant_id"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "social_account_id": {
              "type": "string",
              "format": "uuid"
            },
            "social_comment_id": {
              "type": "string",
              "format": "uuid"
            },
            "social_post_id": {
              "type": "string",
              "format": "uuid"
            },
            "provider_page_id": {
              "type": "string"
            },
            "provider_post_id": {
              "type": "string"
            },
            "provider_comment_id": {
              "type": "string"
            },
            "expected_comment_version": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "operation": {
              "type": "string",
              "enum": [
                "like",
                "unlike"
              ]
            },
            "reaction_type": {
              "type": "string",
              "const": "LIKE"
            },
            "desired_liked": {
              "type": "boolean"
            },
            "current_liked": {
              "type": "null"
            },
            "accepted_app_id": {
              "type": "string"
            },
            "oauth_generation_id": {
              "type": "string",
              "format": "uuid"
            },
            "grant_id": {
              "type": "string",
              "format": "uuid"
            },
            "platform": {
              "type": "string",
              "const": "instagram"
            },
            "provider_instagram_user_id": {
              "type": "string",
              "pattern": "^[1-9][0-9]{1,24}$"
            },
            "native_state_readback": {
              "type": "boolean",
              "const": false
            }
          },
          "required": [
            "social_account_id",
            "social_comment_id",
            "social_post_id",
            "provider_page_id",
            "provider_post_id",
            "provider_comment_id",
            "expected_comment_version",
            "operation",
            "reaction_type",
            "desired_liked",
            "current_liked",
            "accepted_app_id",
            "oauth_generation_id",
            "grant_id",
            "platform",
            "provider_instagram_user_id",
            "native_state_readback"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "contract_version",
    "prepare_token",
    "reviewed_digest",
    "expires_at",
    "review"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
```

## 工具呼叫範例

以下虛構值已按 contract 驗證，並非真實帳戶 ID、憑證或發佈紀錄。請以已授權範圍回傳的 ID、已準備完成的素材及已審核排程取代，並在寫入前核對平台資格。此頁不會呼叫 API。

```json
{
  "name": "sosoapi_reaction_prepare",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "social_account_id": "11111111-1111-4111-8111-111111111111",
    "social_comment_id": "11111111-1111-4111-8111-111111111111",
    "expected_comment_version": 1,
    "operation": "like",
    "reaction_type": "LIKE",
    "idempotency_key": "11111111-1111-4111-8111-111111111111"
  }
}
```

structuredContent

```json
{
  "contract_version": "community-reactions.v1",
  "prepare_token": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "reviewed_digest": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "expires_at": "2099-01-15T09:00:00Z",
  "review": {
    "social_account_id": "11111111-1111-4111-8111-111111111111",
    "social_comment_id": "11111111-1111-4111-8111-111111111111",
    "social_post_id": "11111111-1111-4111-8111-111111111111",
    "provider_page_id": "example",
    "provider_post_id": "example",
    "provider_comment_id": "example",
    "expected_comment_version": 1,
    "operation": "like",
    "reaction_type": "LIKE",
    "desired_liked": false,
    "current_liked": false,
    "accepted_app_id": "example",
    "oauth_generation_id": "11111111-1111-4111-8111-111111111111",
    "grant_id": "11111111-1111-4111-8111-111111111111"
  }
}
```

## 對應 API 操作

- [/community-engagement-api/reactions/prepare](https://sosoapi.ai/zh-hant/docs/api/community-engagement-api-reactions-prepare)
