# Forbered fellesskapshandling

Kanonisk URL: https://sosoapi.ai/nb/docs/mcp/prepare-community-action

`sosoapi_prepare_community_action`

Knytt en gjennomgangsversjon til én handling (svar, skjul eller vis igjen), og hent et kortvarig prepare_token for sosoapi_apply_community_action. Sender ingenting ennå.

## Profiler og transporter

Profiler: full

Transporter: stdio, http

Velg core eller full for å kontrollere hvilke verktøy klienten ser; dette endrer ikke tillatelsene. Lokal filopplasting krever stdio og er utilgjengelig over HTTP. Angi SOSOAPI_OUTPUT_SCHEMAS=1 for å inkludere utdataskjemaer i oppdagelsen. Verktøy returnerer strukturerte resultater med eller uten den innstillingen.

## Tillatelser og sideeffekter

Merknader hjelper klienter med å beskrive et verktøy. Hvert kall kontrollerer fortsatt brukerens autentisering, rolle, ressurstilgang og funksjonstillatelser.

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

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

## Inndatafelter

```json
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "review_id": {
      "type": "string",
      "format": "uuid"
    },
    "expected_review_version": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "action": {
      "type": "string",
      "enum": [
        "reply",
        "hide",
        "unhide"
      ]
    },
    "reply_draft": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "idempotency_key": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "workspace_id",
    "review_id",
    "expected_review_version",
    "action",
    "idempotency_key"
  ],
  "additionalProperties": false
}
```

## Strukturert utdata

Dette skjemaet beskriver structuredContent i et vellykket verktøyresultat. MCP-svaret inkluderer også content og kan sette isError når et kall mislykkes. Ved publisering, les innleggets endelige resultat i stedet for å regne en akseptert forespørsel eller et tekstsvar som bekreftelse. Den lenkede API-operasjonen forklarer tillatelser og regler for nye forsøk.

```json
{
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "community-engagement/v1"
    },
    "prepared": {
      "type": "object",
      "properties": {
        "prepare_token": {
          "type": "string",
          "format": "uuid"
        },
        "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)))$"
        },
        "binding": {
          "type": "object",
          "properties": {
            "workspace_id": {
              "type": "string",
              "format": "uuid"
            },
            "social_account_id": {
              "type": "string",
              "format": "uuid"
            },
            "social_post_id": {
              "type": "string",
              "format": "uuid"
            },
            "social_comment_id": {
              "type": "string",
              "format": "uuid"
            },
            "platform": {
              "type": "string",
              "enum": [
                "facebook",
                "instagram",
                "threads",
                "youtube"
              ]
            },
            "provider_post_id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "provider_comment_id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "action": {
              "type": "string",
              "enum": [
                "reply",
                "hide",
                "unhide"
              ]
            },
            "desired_hidden": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "draft_sha256": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "idempotency_key": {
              "type": "string",
              "format": "uuid"
            }
          },
          "required": [
            "workspace_id",
            "social_account_id",
            "social_post_id",
            "social_comment_id",
            "platform",
            "provider_post_id",
            "provider_comment_id",
            "action",
            "desired_hidden",
            "draft_sha256",
            "idempotency_key"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "prepare_token",
        "expires_at",
        "binding"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "contract_version",
    "prepared"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
```

## Eksempel på verktøykall

Disse eksemplene bruker fiktive verdier kontrollert mot skjemaene. Erstatt ID-ene med noen du har lov til å bruke, mediene med klare ressurser og datoene med bekreftet publiseringstidspunkt. Kontroller kontoens kvalifikasjon før en skriveoperasjon sendes inn. Siden sender ingen API-forespørsler.

```json
{
  "name": "sosoapi_prepare_community_action",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "review_id": "11111111-1111-4111-8111-111111111111",
    "expected_review_version": 1,
    "action": "reply",
    "idempotency_key": "11111111-1111-4111-8111-111111111111",
    "reply_draft": "Thank you for the feedback. Our team will follow up."
  }
}
```

structuredContent

```json
{
  "contract_version": "community-engagement/v1",
  "prepared": {
    "prepare_token": "11111111-1111-4111-8111-111111111111",
    "expires_at": "2099-01-15T09:00:00Z",
    "binding": {
      "workspace_id": "11111111-1111-4111-8111-111111111111",
      "social_account_id": "11111111-1111-4111-8111-111111111111",
      "social_post_id": "11111111-1111-4111-8111-111111111111",
      "social_comment_id": "11111111-1111-4111-8111-111111111111",
      "platform": "facebook",
      "provider_post_id": "example",
      "provider_comment_id": "example",
      "action": "reply",
      "desired_hidden": null,
      "draft_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "idempotency_key": "11111111-1111-4111-8111-111111111111"
    }
  }
}
```

## Underliggende API-operasjoner

- [/community-engagement-api/actions/prepare](https://sosoapi.ai/nb/docs/api/community-engagement-api-actions-prepare)
