Pengembang produk

Tambahkan publikasi ke produk Anda.

Aplikasi jurnal fiktif menambahkan tindakan yang dikonfirmasi pengguna untuk menjadwalkan postingan sosial dan menampilkan hasil.

PRODUK ANDA + SOSOAPI

Ilustrasi alur integrasi
  1. Produk AndaSiapkan dan konfirmasikan
  2. SosoAPIJadwalkan satu postingan terkonfirmasi
  3. Akun sosialIkuti hasilnya
Contoh alur integrasi. Buka panduan untuk permintaan API di sisi server dan kolom respons.

Tiga langkah

  1. Siapkan konten

    Kumpulkan teks dan gambar di dalam produk Anda.

  2. Biarkan pengguna mengonfirmasi

    Tampilkan akun, konten, dan waktu sebelum menjadwalkan.

  3. Kembalikan hasil

    Tampilkan progres dan hasil akhir publikasi.

Publikasi sosial menjadi bagian produk Anda.

Lihat panduan lengkap

Skenario

Tambahkan tindakan “jadwalkan pembaruan ini” yang disengaja dan dapat ditinjau ke produk jurnal fiktif. Pertahankan ruang kerja pengguna dan akun terhubung persisnya tetap terlihat, serta tampilkan status yang dikembalikan tanpa menyiratkan publikasi penyedia.

Ilustrasi contoh ruang kerja SosoAPI untuk “Tambahkan publikasi ke produk Anda..”
Penyusun Postingan Baru bersama dengan data fiktif. Tidak ada postingan yang dikirim.

Sebelum memulai

  • Buat dan verifikasi akun SosoAPI, lalu pilih ruang kerja yang dituju.
  • Buat kunci API di Pengaturan Aplikasi → Agents & API Access. Simpan sebagai SOSOAPI_API_KEY di lingkungan server; contoh JavaScript ini menggunakan Node.js 20+ dan tidak memerlukan repositori sumber SosoAPI.
  • Pilih UUID ruang kerja nyata dan UUID akun sosial Threads hanya dari cakupan berizin saat ini. Akun harus memenuhi syarat untuk postingan teks Threads.
  • Pemilik kunci API memerlukan akses editor atau pemilik ke ruang kerja terpilih. Simpan kunci di server, di luar kode browser, JSON permintaan, dan log.

Contoh input

Produk fiktif
Harborlight Journal · konsep aplikasi jurnal pribadi; tidak mengklaim integrasi nyata.
Maksud pengguna
Jadwalkan satu catatan produk yang ditinjau untuk akun Threads terpilih pada waktu lokal mendatang.
Contoh teks
“Catatan kecil untuk nanti: Harborlight Journal memberi ruang bagi refleksi harian yang lebih singkat. Simpan satu pikiran; biarkan sisanya untuk besok.”
Cakupan runtime yang diwajibkan
<workspace-uuid> dan <threads-social-account-uuid> dari cakupan yang saat ini diizinkan pengguna; jangan pernah menebak ID.
Jadwalkan
<future ISO-8601 instant with offset>, dengan display_timezone diatur ke Asia/Hong_Kong.
Identitas percobaan ulang
<unique stable idempotency key for this one user intent>; gunakan kembali hanya saat mencoba ulang permintaan yang sama dengan aman.

Panduan langkah demi langkah

  1. Rancang konfirmasi produk sebelum panggilan API

    Buka bagian ini di SosoAPI
    • Di aplikasi SosoAPI, pilih ruang kerja yang dituju dan tinjau akun terhubungnya. Dalam mockup produk Anda, tampilkan ruang kerja dan akun pilihan pengguna yang sama alih-alih memilihnya diam-diam.

    • Tampilkan caption persis, akun, waktu lokal, dan zona waktu pada langkah konfirmasi. Wajibkan orang tersebut memilih Jadwalkan; membuka formulir tidak boleh mengirim apa pun.

    Yang dapat diharapkan

    Manusia dapat melihat target dan waktu sebelum penulisan. Mockup produk fiktif adalah latihan desain, bukan integrasi pelanggan yang terpasang.

  2. Baca Scheduled Posts terkini dari server Anda

    • Ganti <workspace-uuid> dengan ID ruang kerja pilihan Anda, lalu jalankan permintaan hanya baca ini di server:

    • 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.
    • Gunakan data yang dikembalikan untuk menyegarkan daftar produk Anda. Pisahkan konfirmasi pengguna dari pembacaan ini.

    Yang dapat diharapkan

    Anda menerima postingan terkini ruang kerja atau kesalahan otorisasi/validasi. Permintaan hanya baca ini tidak membuat postingan.

  3. Kirim hanya setelah konfirmasi eksplisit pengguna

    • Buka Kalender dan pilih Postingan Baru untuk membandingkan langkah tinjauan dengan tindakan yang sama di aplikasi.

    • Ganti setiap placeholder dengan ID yang diizinkan, timestamp ISO mendatang dengan offset, dan kunci idempotensi unik. Tinjau akun, teks, dan waktu sebelum menjalankan permintaan sisi server ini.

    • 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.
    • Menjalankan permintaan ini membuat jadwal nyata. Kirim hanya setelah pengguna mengonfirmasi, dan jangan pernah mengekspos kunci API ke browser.

    Yang dapat diharapkan

    Respons diterima yang valid mengidentifikasi Scheduled Post yang dihasilkan; bukan bukti penyedia telah memublikasikannya. Kemampuan ditolak, cakupan/akun tidak valid, payload tidak didukung, atau jadwal ditolak harus ditampilkan sebagai kesalahan, bukan keberhasilan.

  4. Tampilkan status yang dikembalikan dan berikan tindak lanjut aman kepada pengguna

    Buka bagian ini di SosoAPI
    • Simpan ID Scheduled Post yang dikembalikan dan tampilkan status terkini, tujuan, serta jadwalnya dalam produk.

    • Arahkan pengguna ke detail Scheduled Post terkait. Jika pengiriman memerlukan manusia, tautkan item Needs Attention alih-alih diam-diam mengirim ulang.

    • Jangan beri label dipublikasikan sampai status akhir yang dikonfirmasi penyedia tercatat.

    Yang dapat diharapkan

    Produk membedakan bukti penerimaan permintaan dari pengamatan terjadwal, sedang dipublikasikan, dipublikasikan, gagal, dan tidak diketahui. Hasil tidak diketahui direkonsiliasi dengan postingan yang ada sebelum penulisan baru.

Bukti penerimaan permintaan. Lalu hasil publikasi.

Contoh di bawah menampilkan kolom respons API terpilih dengan nilai fiktif. Setelah membuat jadwal, simpan post.id dan gunakan untuk memeriksa hasil postingan tersebut.

1. Respons create

{
  "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. Baca postingan yang sama

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

Setelah konfirmasi penyedia, respons detail dapat menyertakan:

{
  "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
Gunakan status sebenarnya, seperti scheduled, publishing, published, atau failed. Jika koneksi terputus, baca postingan yang sama sebelum menyimpulkan yang terjadi.
post.permalink
Tautan postingan penyedia jika tersedia; dapat bernilai null. URL di atas adalah contoh.
delivery / outcomes
Respons detail menunjukkan progres publikasi dan hasil platform yang tersedia untuk postingan. Jika gagal, periksa detail tersebut dan Needs Attention sebelum memilih langkah selanjutnya.

Ini contoh kolom, bukan bukti publikasi nyata. Halaman ini tidak melakukan panggilan API.

Arti setiap status

SubmittedRespons permintaan
Permintaan Anda telah diterima. Periksa status postingan saat ini sebelum menganggapnya terjadwal atau dipublikasikan.
ScheduledDetail postingan
Scheduled Post diterima untuk waktu mendatang. Pertahankan tujuan dan waktu terjadwalnya terlihat selama menunggu.
PublishingDetail postingan
Pengiriman sedang berlangsung. Tunggu hasil akhir; status sedang diproses bukan berarti berhasil.
PublishedDetail postingan
Gunakan hanya setelah SosoAPI mencatat konfirmasi akhir penyedia untuk Scheduled Post.
FailedDetail postingan
Kegagalan akhir perlu ditinjau. Periksa detail postingan dan tindakan yang tersedia sebelum memutuskan perubahan atau percobaan ulang.
UnknownYang ditampilkan aplikasi
Jika koneksi terputus dan hasil belum jelas, periksa Scheduled Posts dan Needs Attention sebelum mengirim ulang.

Panduan terkait

Panduan menyertakan contoh API sisi server. Konfigurasikan ID berizin dan kunci API sebelum menjalankannya; halaman ini sendiri tidak mengirim permintaan.

Coba alur kerja pertama Anda.

Buat akun Anda dan mulai dengan Free.

Mulai dengan Free