# 準備留言表情回應

標準 URL： https://sosoapi.ai/zh-tw/docs/mcp/reaction-prepare

`sosoapi_reaction_prepare`

以獨立授權審閱指定留言／版本與預期 LIKE 狀態。IG 操作帳號的按讚狀態維持未知。回傳 token，不會發佈。

## 設定與傳輸方式

設定：full

傳輸方式：stdio、http

選擇 core 或 full 以控制用戶端顯示的工具；這不會變更權限。本機檔案上傳需要 stdio，無法透過 HTTP 使用。設定 SOSOAPI_OUTPUT_SCHEMAS=1 可在探索結果加入輸出結構描述。無論是否啟用此設定，工具皆會回傳結構化結果。

## 權限與副作用

註解幫助用戶端描述工具。每次呼叫仍會檢查使用者身分驗證、角色、資源存取和能力授權。

```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 回應也包含 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
}
```

## 工具呼叫範例

這些範例使用已依結構描述檢查的虛構值。請將 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-tw/docs/api/community-engagement-api-reactions-prepare)
