Produktutviklere

Legg til publisering i produktet ditt.

En fiktiv dagbokapp legger til en brukerbekreftet handling for å planlegge innlegg i sosiale medier og vise resultater.

PRODUKTET DITT + SOSOAPI

Illustrerende integrasjonsflyt
  1. Produktet dittForbered og bekreft
  2. SosoAPIPlanlegg ett bekreftet innlegg
  3. Konto i sosiale medierFølg resultatet
Eksempel på integrasjonsflyt. Åpne veiledningen for API-forespørsler fra serveren og svarfelter.

Tre trinn

  1. Forbered innholdet

    Samle tekst og bilder i produktet ditt.

  2. La brukerne bekrefte

    Vis konto, innhold og tidspunkt før planlegging.

  3. Hent resultater tilbake

    Vis fremdrift og endelig publiseringsresultat.

Publisering i sosiale medier blir en del av produktet ditt.

Se hele veiledningen

Scenario

Legg til en bevisst, gjennomgåbar «planlegg denne oppdateringen»-handling i et fiktivt dagbokprodukt. Hold brukerens arbeidsområde og nøyaktige tilkoblede konto synlige, og vis den returnerte tilstanden uten å antyde publisering hos leverandøren.

Illustrasjon av SosoAPI-eksempelarbeidsområde for «Legg til publisering i produktet ditt..»
Den delte Nytt innlegg-editoren med fiktive data. Ingen innlegg ble sendt inn.

Før du begynner

  • Opprett og verifiser SosoAPI-kontoen din, og velg deretter ønsket arbeidsområde.
  • Opprett en API-nøkkel i Appinnstillinger → Agenter og API-tilgang. Lagre den som SOSOAPI_API_KEY i servermiljøet; disse JavaScript-eksemplene bruker Node.js 20+ og krever ikke SosoAPI-kilderepositoriet.
  • Velg en faktisk arbeidsområde-UUID og Threads-konto-UUID bare fra gjeldende autorisert omfang. Kontoen må være kvalifisert for et tekstinnlegg på Threads.
  • Eieren av API-nøkkelen trenger editor- eller owner-tilgang til valgt arbeidsområde. Behold nøkkelen på serveren din, utenfor nettleserkode, forespørsels-JSON og logger.

Eksempelinndata

Fiktivt produkt
Harborlight Journal · et konsept for en privat dagbokapp; ingen faktisk integrasjon hevdes.
Brukerhensikt
Planlegg ett gjennomgått produktnotat for en valgt Threads-konto på et fremtidig lokalt tidspunkt.
Eksempeltekst
«Et lite notat til senere: Harborlight Journal gir plass til kortere daglige refleksjoner. Behold én tanke; la resten vente til i morgen.»
Påkrevd kjøretidsomfang
<workspace-uuid> og <threads-social-account-uuid> fra gjeldende brukerautorisert omfang; aldri utled ID-er.
Planlegg
<future ISO-8601 instant with offset>, med display_timezone satt til Asia/Hong_Kong.
Identitet ved nytt forsøk
<unique stable idempotency key for this one user intent>; gjenbruk den bare når det er trygt å prøve den samme forespørselen på nytt.

Gjennomgang

  1. Design produktets bekreftelse før API-kallet

    Åpne dette området i SosoAPI
    • Velg ønsket arbeidsområde i SosoAPI-appen og gjennomgå den tilkoblede kontoen. Vis det samme brukervalgte arbeidsområdet og kontoen i produktmodellen din i stedet for å velge ett i stillhet.

    • Vis nøyaktig bildetekst, konto, lokal tid og tidssone i et bekreftelsestrinn. Krev at personen velger Planlegg; åpning av skjemaet må ikke sende inn noe.

    Hva du kan forvente

    En person kan se mål og tidspunkt før skriveoperasjonen. Den fiktive produktmodellen er en designøvelse, ikke en installert kundeintegrasjon.

  2. Les gjeldende planlagte innlegg fra serveren din

    • Erstatt <workspace-uuid> med valgt arbeidsområde-ID, og kjør deretter denne skrivebeskyttede forespørselen på serveren din:

    • const apiKey = process.env.SOSOAPI_API_KEY;
      if (!apiKey) throw new Error("Configure a SosoAPI API key on your server");
      const response = await fetch(
        "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/studio-api/scheduled-posts/list",
        {
          method: "POST",
          headers: {
            "Authorization": "Bearer " + apiKey,
            "Content-Type": "application/json"
          },
          body: JSON.stringify({"workspace_id":"<workspace-uuid>"})
        }
      );
      const result = await response.json();
      if (!response.ok) throw new Error("SosoAPI request failed: " + response.status);
      // Use result in your server response; never return or log the API key.
    • Bruk returnerte data til å oppdatere produktets liste. Hold brukerbekreftelsen separat fra denne lesingen.

    Hva du kan forvente

    Du mottar arbeidsområdets gjeldende innlegg eller en autorisasjons-/valideringsfeil. Denne skrivebeskyttede forespørselen oppretter ingen innlegg.

  3. Send bare inn etter uttrykkelig brukerbekreftelse

    • Åpne Kalender og velg Nytt innlegg for å sammenligne gjennomgangstrinnet med samme handling i appen.

    • Erstatt alle plassholdere med autoriserte ID-er, et fremtidig ISO-tidsstempel med forskyvning og en unik idempotensnøkkel. Gjennomgå konto, tekst og tidspunkt før du kjører denne forespørselen fra serveren.

    • const apiKey = process.env.SOSOAPI_API_KEY;
      if (!apiKey) throw new Error("Configure a SosoAPI API key on your server");
      const response = await fetch(
        "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/studio-api/scheduled-posts/create",
        {
          method: "POST",
          headers: {
            "Authorization": "Bearer " + apiKey,
            "Content-Type": "application/json"
          },
          body: JSON.stringify({
        "workspace_id": "<workspace-uuid>",
        "social_account_id": "<threads-social-account-uuid>",
        "caption": "A small note for later: Harborlight Journal is making room for shorter daily reflections. Keep one thought; leave the rest for tomorrow.",
        "hashtags": [],
        "media": [],
        "provider_payload": {"platform": "threads", "publish_options": {"post_type": "TEXT"}},
        "scheduled_at": "<future ISO-8601 instant with offset>",
        "display_timezone": "Asia/Hong_Kong",
        "idempotency_key": "<unique-stable-key-for-this-intent>"
      })
        }
      );
      const result = await response.json();
      if (!response.ok) throw new Error("SosoAPI request failed: " + response.status);
      // Use result in your server response; never return or log the API key.
    • Kjøring av forespørselen oppretter en faktisk publiseringsplan. Send bare inn etter brukerens bekreftelse, og eksponer aldri API-nøkkelen til en nettleser.

    Hva du kan forvente

    Et gyldig akseptert svar identifiserer det resulterende planlagte innlegget; det beviser ikke at leverandøren har publisert det. En nektet funksjon, ugyldig omfang/konto, ustøttet nyttelast eller avvist publiseringsplan må vises som feil, ikke rapporteres som suksess.

  4. Vis den returnerte tilstanden og gi brukeren en trygg oppfølging

    Åpne dette området i SosoAPI
    • Lagre den returnerte ID-en for det planlagte innlegget og vis gjeldende tilstand, mål og publiseringsplan i produktet.

    • Lenk brukeren til detaljene for det aktuelle planlagte innlegget. Hvis levering trenger en person, lenk til elementet Krever oppfølging i stedet for å sende inn igjen i stillhet.

    • Ikke merk forespørselen som publisert før endelig leverandørbekreftet status er registrert.

    Hva du kan forvente

    Produktet skiller en forespørselskvittering fra planlagt, publiserer, publisert, mislykket og ukjente observasjoner. Ukjente resultater avstemmes mot det eksisterende innlegget før en ny skriveoperasjon.

En forespørselskvittering. Deretter et publiseringsresultat.

Eksemplene nedenfor viser utvalgte API-svarfelter med fiktive verdier. Når du har opprettet en publiseringsplan, lagrer du post.id og bruker den til å kontrollere resultatet for det innlegget.

1. Svar ved oppretting

{
  "post": {
    "id": "10000000-0000-4000-8000-000000000001",
    "status": "scheduled",
    "scheduled_at": "2100-01-05T10:00:00+08:00",
    "published_at": null,
    "permalink": null
  },
  "deduped": false
}

2. Les det samme innlegget

POST /studio-api/scheduled-posts/get
{
  "id": "10000000-0000-4000-8000-000000000001"
}

Etter leverandørbekreftelse kan detaljsvaret inneholde:

{
  "post": {
    "id": "10000000-0000-4000-8000-000000000001",
    "status": "published",
    "published_at": "2100-01-05T02:00:08Z",
    "permalink": "https://www.threads.net/@example/post/EXAMPLE"
  },
  "delivery": {
    "stage": "terminal",
    "message": "Published on Threads."
  }
}
post.status
Bruk den faktiske tilstanden, som scheduled, publishing, published eller failed. Hvis en tilkobling brytes, les det samme innlegget før du avgjør hva som skjedde.
post.permalink
Leverandørens innleggslenke når tilgjengelig; den kan være null. URL-en ovenfor er et eksempel.
delivery / outcomes
Detaljsvaret viser publiseringsfremdrift og plattformresultatene som er tilgjengelige for innlegget. Hvis det mislykkes, kontroller detaljene og Krever oppfølging før du velger neste handling.

Dette er felteksempler, ikke en faktisk publiseringskvittering. Denne siden gjør ingen API-kall.

Hva hver status betyr

SubmittedForespørselssvar
Forespørselen er mottatt. Kontroller innleggets gjeldende tilstand før du behandler det som planlagt eller publisert.
ScheduledInnleggsdetaljer
Det planlagte innlegget er akseptert for et fremtidig tidspunkt. Hold mål og planlagt tidspunkt synlige mens det venter.
PublishingInnleggsdetaljer
Leveringen pågår. Vent på et endelig resultat; en pågående tilstand betyr ikke suksess.
PublishedInnleggsdetaljer
Bruk dette først etter at SosoAPI registrerer endelig leverandørbekreftelse for det planlagte innlegget.
FailedInnleggsdetaljer
En endelig feil krever gjennomgang. Kontroller innleggsdetaljene og tilgjengelig handling før du bestemmer hva som skal endres eller prøves på nytt.
UnknownHva appen viser
Hvis en tilkobling brytes og resultatet er uklart, kontroller Planlagte innlegg og Krever oppfølging før ny innsending.

Relaterte veiledninger

Veiledningen inkluderer API-eksempler for serveren. Konfigurer autoriserte ID-er og API-nøkkel før kjøring; selve siden gjør ingen forespørsler.

Prøv din første arbeidsflyt.

Opprett kontoen din og begynn med Free.

Begynn med Free