Quickstart
Pilih platform, salin snippet, jalankan. Polanya selalu sama: daftarkan app → hubungkan akun → posting. Referensi lengkap semua endpoint ada di Referensi API.
Sebelum mulai: API key
Semua request memakai API key sk_…. Key dibuat oleh pengelola server medsos-share dan hanya ditampilkan satu kali:
docker compose exec api node dist/cli/create-tenant.js --name "Nama Usaha Anda"
Tanpa akses terminal (misalnya di Dokploy): isi env ADMIN_TOKEN di server, lalu buat lewat API:
curl -X POST "https://socialshare-api.managebiz.co/admin/tenants" \
-H "Authorization: Bearer ADMIN_TOKEN_ANDA" \
-H "Content-Type: application/json" \
-d '{"name": "Nama Usaha Anda"}'
Key hilang/bocor? POST /admin/tenants/{id}/rotate-key memberi key baru dan mematikan yang lama. Saat development tanpa Docker: npm run tenant:create -- --name "Nama Usaha Anda". Untuk melayani banyak klien, buat profile per klien dengan POST /api/profiles lalu pakai profileKey-nya sebagai Profile-Key.
Isi API key Anda supaya semua snippet langsung siap dipakai. Nilai ini hanya dipakai di halaman ini: tidak disimpan dan tidak dikirim ke mana pun. Isi Profile-Key kalau bertindak atas nama klien tertentu (dari POST /api/profiles).
Facebook Page
Posting teks, link, foto (hingga 10), atau video ke Facebook Page.
- Akun klien harus admin Facebook Page.
- Sebelum App Review + Business Verification, hanya akun yang punya peran di app Anda yang bisa dihubungkan.
- 1
Siapkan developer app Meta (Facebook Pages & Instagram) (sekali saja)
- developers.facebook.com → Aplikasi Saya → Buat aplikasi. Isi nama aplikasi dan email.
- Kasus penggunaan: klik filter "Pengelolaan konten", lalu centang "Kelola segala sesuatu di Halaman Anda" (Manage everything on your Page). Jangan pilih Facebook Login atau Marketing API.
- Bisnis: untuk uji coba pilih belum menghubungkan portofolio bisnis, lalu lanjut sampai "Buat aplikasi".
- Dasbor → "Sesuaikan kasus penggunaan Kelola semua hal di Halaman Anda": pastikan semua izin di bawah berstatus "Ditambahkan".
- Pengaturan aplikasi → Dasar: salin ID Aplikasi dan Kunci Rahasia Aplikasi. Untuk uji coba biarkan app di mode Development (jangan "Terbitkan").
Izin (scope) yang dibutuhkan:
pages_show_listpages_manage_postspages_read_engagementRedirect URI:
https://socialshare-api.managebiz.co/oauth/callback/facebookMode Development: Meta langsung menerima Redirect URI localhost, tidak perlu didaftarkan. Produksi (https): (1) Pengaturan aplikasi → Dasar → "Domain Aplikasi" isi domain server tanpa https:// (tanpa ini login gagal "Tidak Dapat Memuat URL"); (2) Facebook Login for Business → Pengaturan → kolom "Redirect URI OAuth Valid" (bukan kotak Validator di atasnya) isi Redirect URI di bawah lalu Save Changes; cek dengan "Periksa URI" sampai hijau.
Satu app Meta (Facebook Pages & Instagram) dipakai untuk beberapa platform. Kalau App ID-nya sudah pernah disimpan, langkah PUT di bawah tidak perlu diulang.
Lalu simpan App ID dan App Secret ke medsos-share. Kuncinya langsung dicek ke platform (kode 113 kalau salah):
curl -X PUT "https://socialshare-api.managebiz.co/api/apps/meta" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }'const res = await fetch("https://socialshare-api.managebiz.co/api/apps/meta", { method: "PUT", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/apps/meta"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.put( "https://socialshare-api.managebiz.co/api/apps/meta", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA", }, ) print(res.json()) - 2
Hubungkan akun klien (pilih salah satu)
Cara A: login (disarankan)
Response berisi "url" yang berlaku 10 menit. Buka url itu di browser klien; setelah klien login dan memberi izin, akunnya otomatis tersambung lalu diarahkan ke "redirect" (opsional).
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/facebook/oauth" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "redirect": "https://app-anda.com/akun" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/facebook/oauth", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "redirect": "https://app-anda.com/akun" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/facebook/oauth"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "redirect": "https://app-anda.com/akun" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/facebook/oauth", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "redirect": "https://app-anda.com/akun", }, ) print(res.json())- Tanpa "redirect", klien melihat halaman "Connected" dan boleh menutup jendela.
- Kalau klien mengelola beberapa Page, muncul halaman untuk memilih satu Page.
- Token Page yang didapat tidak kedaluwarsa, jadi klien tidak perlu login ulang.
Cara B: token langsung
Kalau Anda sudah punya access token dari app Anda sendiri, kirim tokennya tanpa alur login:
- Buka Graph API Explorer (developers.facebook.com/tools/explorer) dan pilih app Anda di "Meta App".
- Tambahkan izin pages_show_list, pages_manage_posts, pages_read_engagement → "Generate Access Token" → login dan pilih Page.
- Jalankan GET me/accounts: ambil "id" sebagai pageId dan "access_token" sebagai pageAccessToken.
- Token dari Explorer hanya berlaku 1–2 jam. Supaya tidak kedaluwarsa: Access Token Debugger → "Extend Access Token", lalu jalankan me/accounts lagi dengan token panjang itu.
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/facebook" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "pageId": "PAGE_ID", "pageAccessToken": "PAGE_ACCESS_TOKEN" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/facebook", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "pageId": "PAGE_ID", "pageAccessToken": "PAGE_ACCESS_TOKEN" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/facebook"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "pageId": "PAGE_ID", "pageAccessToken": "PAGE_ACCESS_TOKEN" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/facebook", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "pageId": "PAGE_ID", "pageAccessToken": "PAGE_ACCESS_TOKEN", }, ) print(res.json()) - 3
Posting
curl -X POST "https://socialshare-api.managebiz.co/api/post" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "post": "Promo akhir pekan! 🎉", "platforms": [ "facebook" ], "mediaUrls": [ "https://contoh.com/foto.jpg" ] }'const res = await fetch("https://socialshare-api.managebiz.co/api/post", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "post": "Promo akhir pekan! 🎉", "platforms": [ "facebook" ], "mediaUrls": [ "https://contoh.com/foto.jpg" ] }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/post"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "post": "Promo akhir pekan! 🎉", "platforms": [ "facebook" ], "mediaUrls": [ "https://contoh.com/foto.jpg" ] } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/post", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "post": "Promo akhir pekan! 🎉", "platforms": [ "facebook", ], "mediaUrls": [ "https://contoh.com/foto.jpg", ], }, ) print(res.json())- Tanpa foto: hapus mediaUrls, bisa tambah "facebookOptions": { "link": "https://toko-anda.com" }.
- Video: isi mediaUrls dengan satu URL .mp4.
- Jadwalkan: tambahkan "scheduleDate": "2026-11-01T09:00:00+07:00".
- Cek hasil: GET /api/post/{id} dengan id dari response. Hapus: DELETE /api/post/{id}.
- Analitik (GET /api/analytics/post/{id}): reaksi per jenis, views, reach, klik, dan share. Meta mengisinya beberapa jam setelah posting; jumlah komentar tidak tersedia dengan izin ini.
Posting foto, carousel (hingga 10), atau Reels ke akun Instagram Business/Creator.
- Akun Instagram harus profesional (Bisnis/Kreator) dan tertaut ke Facebook Page (Instagram → Pengaturan → Akun profesional → Facebook).
- Foto wajib JPEG dan URL-nya bisa diakses publik (Meta mengunduhnya sendiri).
- Butuh App Review untuk akun di luar peran app.
- 1
Siapkan developer app Meta (Facebook Pages & Instagram) (sekali saja)
- Pakai app Meta yang sama dengan Facebook (lihat tab Facebook untuk membuatnya).
- Dasbor app → Kasus penggunaan → "Tambahkan lebih banyak ke kasus penggunaan" → "Kelola pesan & konten di Instagram". Tanpa ini login gagal dengan "Invalid Scopes: instagram_basic, …".
- Pilih penyiapan API dengan Facebook Login (bukan Instagram Login): medsos-share memposting ke Instagram lewat Facebook Page yang terhubung.
- Pastikan izin instagram_basic, instagram_content_publish, instagram_manage_insights berstatus "Siap untuk pengujian" (klik + Tambahkan bila belum).
- "ID aplikasi Instagram" dan rahasianya yang tampil di use case itu tidak dipakai: daftarkan ID App Meta utama ke PUT /api/apps/meta.
Izin (scope) yang dibutuhkan:
pages_show_listpages_read_engagementbusiness_managementinstagram_basicinstagram_content_publishinstagram_manage_insightsRedirect URI:
https://socialshare-api.managebiz.co/oauth/callback/instagramMode Development: Redirect URI localhost langsung diterima. Produksi (https): (1) Pengaturan aplikasi → Dasar → "Domain Aplikasi" isi domain server tanpa https:// (tanpa ini login gagal "Tidak Dapat Memuat URL"); (2) Facebook Login for Business → Pengaturan → kolom "Redirect URI OAuth Valid" (bukan kotak Validator di atasnya) isi Redirect URI di bawah lalu Save Changes; cek dengan "Periksa URI" sampai hijau.
Satu app Meta (Facebook Pages & Instagram) dipakai untuk beberapa platform. Kalau App ID-nya sudah pernah disimpan, langkah PUT di bawah tidak perlu diulang.
Lalu simpan App ID dan App Secret ke medsos-share. Kuncinya langsung dicek ke platform (kode 113 kalau salah):
curl -X PUT "https://socialshare-api.managebiz.co/api/apps/meta" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }'const res = await fetch("https://socialshare-api.managebiz.co/api/apps/meta", { method: "PUT", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/apps/meta"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.put( "https://socialshare-api.managebiz.co/api/apps/meta", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA", }, ) print(res.json()) - 2
Hubungkan akun klien (pilih salah satu)
Cara A: login (disarankan)
Response berisi "url" yang berlaku 10 menit. Buka url itu di browser klien; setelah klien login dan memberi izin, akunnya otomatis tersambung lalu diarahkan ke "redirect" (opsional).
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/instagram/oauth" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "redirect": "https://app-anda.com/akun" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/instagram/oauth", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "redirect": "https://app-anda.com/akun" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/instagram/oauth"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "redirect": "https://app-anda.com/akun" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/instagram/oauth", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "redirect": "https://app-anda.com/akun", }, ) print(res.json())- Klien login dengan akun Facebook yang mengelola Page tempat akun Instagram-nya terhubung.
- Kalau ada beberapa akun Instagram, muncul halaman untuk memilih salah satu.
Cara B: token langsung
Kalau Anda sudah punya access token dari app Anda sendiri, kirim tokennya tanpa alur login:
- Graph API Explorer → pilih app Anda → tambahkan izin instagram_basic, instagram_content_publish, pages_show_list → "Generate Access Token".
- Jalankan GET me/accounts?fields=instagram_business_account,access_token: igUserId = instagram_business_account.id, accessToken = access_token (token Page).
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/instagram" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "igUserId": "IG_USER_ID", "accessToken": "ACCESS_TOKEN" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/instagram", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "igUserId": "IG_USER_ID", "accessToken": "ACCESS_TOKEN" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/instagram"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "igUserId": "IG_USER_ID", "accessToken": "ACCESS_TOKEN" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/instagram", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "igUserId": "IG_USER_ID", "accessToken": "ACCESS_TOKEN", }, ) print(res.json()) - 3
Posting
curl -X POST "https://socialshare-api.managebiz.co/api/post" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "post": "Menu baru minggu ini ☕ #kopi", "platforms": [ "instagram" ], "mediaUrls": [ "https://contoh.com/foto.jpg" ] }'const res = await fetch("https://socialshare-api.managebiz.co/api/post", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "post": "Menu baru minggu ini ☕ #kopi", "platforms": [ "instagram" ], "mediaUrls": [ "https://contoh.com/foto.jpg" ] }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/post"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "post": "Menu baru minggu ini ☕ #kopi", "platforms": [ "instagram" ], "mediaUrls": [ "https://contoh.com/foto.jpg" ] } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/post", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "post": "Menu baru minggu ini ☕ #kopi", "platforms": [ "instagram", ], "mediaUrls": [ "https://contoh.com/foto.jpg", ], }, ) print(res.json())- Instagram wajib ada media; teks saja tidak bisa.
- Video .mp4 otomatis menjadi Reels.
- Beberapa URL di mediaUrls = carousel.
- Posting butuh ±10–25 detik karena Meta memproses media dulu.
- Instagram tidak menyediakan API hapus: DELETE /api/post/{id} membalas status "error" untuk Instagram, jadi hapus manual di aplikasi.
- Jadwalkan: tambahkan "scheduleDate": "2026-11-01T09:00:00+07:00".
- Cek hasil: GET /api/post/{id} dengan id dari response. Hapus: DELETE /api/post/{id}.
- Analitik: jumlah like dan komentar, tipe media, dan permalink.
Threads
Posting teks, foto, video, atau carousel (hingga 20) ke Threads.
- Teks maksimal 500 karakter.
- 1
Siapkan developer app Threads (sekali saja)
- Di app Meta: "Tambahkan kasus penggunaan" → "Akses Threads API".
- Threads punya App ID dan App Secret sendiri (lihat pengaturan kasus penggunaan Threads); daftarkan sebagai app "threads", bukan "meta".
Izin (scope) yang dibutuhkan:
threads_basicthreads_content_publishthreads_manage_insightsRedirect URI:
https://socialshare-api.managebiz.co/oauth/callback/threadsDaftarkan Redirect URI ini di pengaturan kasus penggunaan Threads.
Lalu simpan App ID dan App Secret ke medsos-share. Kuncinya langsung dicek ke platform (kode 113 kalau salah):
curl -X PUT "https://socialshare-api.managebiz.co/api/apps/threads" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }'const res = await fetch("https://socialshare-api.managebiz.co/api/apps/threads", { method: "PUT", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/apps/threads"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.put( "https://socialshare-api.managebiz.co/api/apps/threads", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA", }, ) print(res.json()) - 2
Hubungkan akun klien (pilih salah satu)
Cara A: login (disarankan)
Response berisi "url" yang berlaku 10 menit. Buka url itu di browser klien; setelah klien login dan memberi izin, akunnya otomatis tersambung lalu diarahkan ke "redirect" (opsional).
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/threads/oauth" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "redirect": "https://app-anda.com/akun" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/threads/oauth", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "redirect": "https://app-anda.com/akun" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/threads/oauth"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "redirect": "https://app-anda.com/akun" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/threads/oauth", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "redirect": "https://app-anda.com/akun", }, ) print(res.json())Cara B: token langsung
Kalau Anda sudah punya access token dari app Anda sendiri, kirim tokennya tanpa alur login:
- Gunakan token long-lived Threads (berlaku 60 hari) dari alur OAuth app Anda sendiri.
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/threads" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "userId": "USER_ID", "accessToken": "ACCESS_TOKEN", "expiresIn": 5184000 }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/threads", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "userId": "USER_ID", "accessToken": "ACCESS_TOKEN", "expiresIn": 5184000 }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/threads"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "userId": "USER_ID", "accessToken": "ACCESS_TOKEN", "expiresIn": 5184000 } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/threads", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "userId": "USER_ID", "accessToken": "ACCESS_TOKEN", "expiresIn": 5184000, }, ) print(res.json()) - 3
Posting
curl -X POST "https://socialshare-api.managebiz.co/api/post" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "post": "Halo Threads 👋", "platforms": [ "threads" ] }'const res = await fetch("https://socialshare-api.managebiz.co/api/post", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "post": "Halo Threads 👋", "platforms": [ "threads" ] }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/post"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "post": "Halo Threads 👋", "platforms": [ "threads" ] } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/post", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "post": "Halo Threads 👋", "platforms": [ "threads", ], }, ) print(res.json())- Tambah mediaUrls untuk foto/video.
- Jadwalkan: tambahkan "scheduleDate": "2026-11-01T09:00:00+07:00".
- Cek hasil: GET /api/post/{id} dengan id dari response. Hapus: DELETE /api/post/{id}.
- Analitik: views, likes, replies, reposts, quotes.
TikTok
Posting video atau foto (hingga 35) ke TikTok.
- Sebelum audit TikTok: hanya bisa privacyLevel SELF_ONLY dan maksimal 5 pengguna.
- Untuk foto, domain URL media harus diverifikasi di developer portal TikTok.
- 1
Siapkan developer app TikTok (sekali saja)
- developers.tiktok.com → Manage apps → buat app.
- Tambahkan produk "Login Kit" dan "Content Posting API" (aktifkan Direct Post).
Izin (scope) yang dibutuhkan:
user.info.basicuser.info.profilevideo.publishvideo.uploadRedirect URI:
https://socialshare-api.managebiz.co/oauth/callback/tiktokDaftarkan di Login Kit → "Redirect URI".
Lalu simpan App ID dan App Secret ke medsos-share. Kuncinya langsung dicek ke platform (kode 113 kalau salah):
curl -X PUT "https://socialshare-api.managebiz.co/api/apps/tiktok" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }'const res = await fetch("https://socialshare-api.managebiz.co/api/apps/tiktok", { method: "PUT", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/apps/tiktok"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.put( "https://socialshare-api.managebiz.co/api/apps/tiktok", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA", }, ) print(res.json()) - 2
Hubungkan akun klien (pilih salah satu)
Cara A: login (disarankan)
Response berisi "url" yang berlaku 10 menit. Buka url itu di browser klien; setelah klien login dan memberi izin, akunnya otomatis tersambung lalu diarahkan ke "redirect" (opsional).
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/tiktok/oauth" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "redirect": "https://app-anda.com/akun" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/tiktok/oauth", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "redirect": "https://app-anda.com/akun" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/tiktok/oauth"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "redirect": "https://app-anda.com/akun" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/tiktok/oauth", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "redirect": "https://app-anda.com/akun", }, ) print(res.json())Cara B: token langsung
Kalau Anda sudah punya access token dari app Anda sendiri, kirim tokennya tanpa alur login:
- Gunakan token dari alur OAuth TikTok Anda (berlaku 24 jam, refresh token 365 hari).
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/tiktok" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "openId": "OPEN_ID", "expiresIn": 86400 }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/tiktok", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "openId": "OPEN_ID", "expiresIn": 86400 }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/tiktok"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "openId": "OPEN_ID", "expiresIn": 86400 } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/tiktok", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "openId": "OPEN_ID", "expiresIn": 86400, }, ) print(res.json()) - 3
Posting
curl -X POST "https://socialshare-api.managebiz.co/api/post" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "post": "Video baru! #fyp", "platforms": [ "tiktok" ], "mediaUrls": [ "https://contoh.com/video.mp4" ], "tiktokOptions": { "privacyLevel": "SELF_ONLY" } }'const res = await fetch("https://socialshare-api.managebiz.co/api/post", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "post": "Video baru! #fyp", "platforms": [ "tiktok" ], "mediaUrls": [ "https://contoh.com/video.mp4" ], "tiktokOptions": { "privacyLevel": "SELF_ONLY" } }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/post"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "post": "Video baru! #fyp", "platforms": [ "tiktok" ], "mediaUrls": [ "https://contoh.com/video.mp4" ], "tiktokOptions": { "privacyLevel": "SELF_ONLY" } } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/post", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "post": "Video baru! #fyp", "platforms": [ "tiktok", ], "mediaUrls": [ "https://contoh.com/video.mp4", ], "tiktokOptions": { "privacyLevel": "SELF_ONLY", }, }, ) print(res.json())- Setelah lolos audit, ganti privacyLevel ke PUBLIC_TO_EVERYONE.
- Status "pending" berarti TikTok masih memproses video.
- Jadwalkan: tambahkan "scheduleDate": "2026-11-01T09:00:00+07:00".
- Cek hasil: GET /api/post/{id} dengan id dari response. Hapus: DELETE /api/post/{id}.
- Analitik untuk platform ini belum tersedia.
YouTube
Upload video ke channel YouTube.
- Tanpa audit Google, video yang diupload otomatis menjadi private.
- Kuota default ±6 upload per hari per project.
- Selama consent screen berstatus "Testing", refresh token kedaluwarsa dalam 7 hari.
- 1
Siapkan developer app Google (YouTube) (sekali saja)
- console.cloud.google.com → buat project → aktifkan "YouTube Data API v3".
- Buat OAuth consent screen, lalu Credentials → OAuth client ID tipe "Web application" (app "google").
Izin (scope) yang dibutuhkan:
https://www.googleapis.com/auth/youtube.uploadhttps://www.googleapis.com/auth/youtube.readonlyhttps://www.googleapis.com/auth/youtube.force-sslRedirect URI:
https://socialshare-api.managebiz.co/oauth/callback/youtubeDaftarkan di OAuth client → "Authorized redirect URIs".
Lalu simpan App ID dan App Secret ke medsos-share. Kuncinya langsung dicek ke platform (kode 113 kalau salah):
curl -X PUT "https://socialshare-api.managebiz.co/api/apps/google" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }'const res = await fetch("https://socialshare-api.managebiz.co/api/apps/google", { method: "PUT", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/apps/google"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.put( "https://socialshare-api.managebiz.co/api/apps/google", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA", }, ) print(res.json()) - 2
Hubungkan akun klien (pilih salah satu)
Cara A: login (disarankan)
Response berisi "url" yang berlaku 10 menit. Buka url itu di browser klien; setelah klien login dan memberi izin, akunnya otomatis tersambung lalu diarahkan ke "redirect" (opsional).
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/youtube/oauth" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "redirect": "https://app-anda.com/akun" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/youtube/oauth", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "redirect": "https://app-anda.com/akun" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/youtube/oauth"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "redirect": "https://app-anda.com/akun" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/youtube/oauth", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "redirect": "https://app-anda.com/akun", }, ) print(res.json())Cara B: token langsung
Kalau Anda sudah punya access token dari app Anda sendiri, kirim tokennya tanpa alur login:
- Gunakan token dari alur OAuth Google Anda dengan access_type=offline (supaya ada refresh token).
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/youtube" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "channelId": "CHANNEL_ID", "expiresIn": 3599 }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/youtube", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "channelId": "CHANNEL_ID", "expiresIn": 3599 }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/youtube"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "channelId": "CHANNEL_ID", "expiresIn": 3599 } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/youtube", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "channelId": "CHANNEL_ID", "expiresIn": 3599, }, ) print(res.json()) - 3
Posting
curl -X POST "https://socialshare-api.managebiz.co/api/post" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "post": "Deskripsi video", "platforms": [ "youtube" ], "mediaUrls": [ "https://contoh.com/video.mp4" ], "youtubeOptions": { "title": "Judul video", "visibility": "public" } }'const res = await fetch("https://socialshare-api.managebiz.co/api/post", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "post": "Deskripsi video", "platforms": [ "youtube" ], "mediaUrls": [ "https://contoh.com/video.mp4" ], "youtubeOptions": { "title": "Judul video", "visibility": "public" } }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/post"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "post": "Deskripsi video", "platforms": [ "youtube" ], "mediaUrls": [ "https://contoh.com/video.mp4" ], "youtubeOptions": { "title": "Judul video", "visibility": "public" } } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/post", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "post": "Deskripsi video", "platforms": [ "youtube", ], "mediaUrls": [ "https://contoh.com/video.mp4", ], "youtubeOptions": { "title": "Judul video", "visibility": "public", }, }, ) print(res.json())- Wajib tepat satu video dan youtubeOptions.title.
- Video besar bisa dijawab HTTP 202 "processing"; hasilnya dikirim ke webhook.
- Jadwalkan: tambahkan "scheduleDate": "2026-11-01T09:00:00+07:00".
- Cek hasil: GET /api/post/{id} dengan id dari response. Hapus: DELETE /api/post/{id}.
- Analitik: views, likes, komentar, favorit.
X (Twitter)
Posting tweet dengan teks, hingga 4 foto, atau satu video.
- X menagih setiap request ke pemilik app (pay-per-use).
- Teks maksimal 280 karakter (setiap link dihitung 23).
- 1
Siapkan developer app X (Twitter) (sekali saja)
- console.x.com → buat app (app "x") dan isi kredit pay-per-use.
- User authentication settings: OAuth 2.0, tipe "Web App", izin "Read and write".
Izin (scope) yang dibutuhkan:
tweet.readtweet.writeusers.readoffline.accessmedia.writeRedirect URI:
https://socialshare-api.managebiz.co/oauth/callback/twitterDaftarkan sebagai "Callback URI / Redirect URL" di User authentication settings.
Lalu simpan App ID dan App Secret ke medsos-share. Kuncinya langsung dicek ke platform (kode 113 kalau salah):
curl -X PUT "https://socialshare-api.managebiz.co/api/apps/x" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }'const res = await fetch("https://socialshare-api.managebiz.co/api/apps/x", { method: "PUT", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/apps/x"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.put( "https://socialshare-api.managebiz.co/api/apps/x", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA", }, ) print(res.json()) - 2
Hubungkan akun klien (pilih salah satu)
Cara A: login (disarankan)
Response berisi "url" yang berlaku 10 menit. Buka url itu di browser klien; setelah klien login dan memberi izin, akunnya otomatis tersambung lalu diarahkan ke "redirect" (opsional).
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/twitter/oauth" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "redirect": "https://app-anda.com/akun" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/twitter/oauth", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "redirect": "https://app-anda.com/akun" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/twitter/oauth"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "redirect": "https://app-anda.com/akun" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/twitter/oauth", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "redirect": "https://app-anda.com/akun", }, ) print(res.json())Cara B: token langsung
Kalau Anda sudah punya access token dari app Anda sendiri, kirim tokennya tanpa alur login:
- Gunakan token OAuth 2.0 user context (berlaku 2 jam) dengan scope tweet.write dan offline.access.
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/twitter" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "accessToken": "ACCESS_TOKEN", "userId": "USER_ID", "refreshToken": "REFRESH_TOKEN", "expiresIn": 7200 }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/twitter", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "accessToken": "ACCESS_TOKEN", "userId": "USER_ID", "refreshToken": "REFRESH_TOKEN", "expiresIn": 7200 }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/twitter"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "accessToken": "ACCESS_TOKEN", "userId": "USER_ID", "refreshToken": "REFRESH_TOKEN", "expiresIn": 7200 } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/twitter", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "accessToken": "ACCESS_TOKEN", "userId": "USER_ID", "refreshToken": "REFRESH_TOKEN", "expiresIn": 7200, }, ) print(res.json())Opsional: refreshToken.
- 3
Posting
curl -X POST "https://socialshare-api.managebiz.co/api/post" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "post": "Halo dari medsos-share 🚀", "platforms": [ "twitter" ] }'const res = await fetch("https://socialshare-api.managebiz.co/api/post", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "post": "Halo dari medsos-share 🚀", "platforms": [ "twitter" ] }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/post"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "post": "Halo dari medsos-share 🚀", "platforms": [ "twitter" ] } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/post", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "post": "Halo dari medsos-share 🚀", "platforms": [ "twitter", ], }, ) print(res.json())- Balas tweet: "twitterOptions": { "replyTo": "<tweet id>" }.
- Jadwalkan: tambahkan "scheduleDate": "2026-11-01T09:00:00+07:00".
- Cek hasil: GET /api/post/{id} dengan id dari response. Hapus: DELETE /api/post/{id}.
- Analitik: likes, reposts, replies, quotes, impressions, bookmarks.
Posting ke profil pribadi atau company page LinkedIn.
- Profil pribadi: langsung bisa (self-serve).
- Company page: ajukan "Community Management API", lalu set options.organizations: true di PUT /api/apps/linkedin.
- 1
Siapkan developer app LinkedIn (sekali saja)
- linkedin.com/developers → Create app (butuh LinkedIn Page untuk verifikasi app).
- Tab Products: tambahkan "Sign In with LinkedIn using OpenID Connect" dan "Share on LinkedIn".
Izin (scope) yang dibutuhkan:
openidprofilew_member_socialRedirect URI:
https://socialshare-api.managebiz.co/oauth/callback/linkedinDaftarkan di tab Auth → "Authorized redirect URLs for your app".
Lalu simpan App ID dan App Secret ke medsos-share. Kuncinya langsung dicek ke platform (kode 113 kalau salah):
curl -X PUT "https://socialshare-api.managebiz.co/api/apps/linkedin" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }'const res = await fetch("https://socialshare-api.managebiz.co/api/apps/linkedin", { method: "PUT", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/apps/linkedin"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.put( "https://socialshare-api.managebiz.co/api/apps/linkedin", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA", }, ) print(res.json()) - 2
Hubungkan akun klien (pilih salah satu)
Cara A: login (disarankan)
Response berisi "url" yang berlaku 10 menit. Buka url itu di browser klien; setelah klien login dan memberi izin, akunnya otomatis tersambung lalu diarahkan ke "redirect" (opsional).
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/linkedin/oauth" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "redirect": "https://app-anda.com/akun" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/linkedin/oauth", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "redirect": "https://app-anda.com/akun" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/linkedin/oauth"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "redirect": "https://app-anda.com/akun" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/linkedin/oauth", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "redirect": "https://app-anda.com/akun", }, ) print(res.json())Cara B: token langsung
Kalau Anda sudah punya access token dari app Anda sendiri, kirim tokennya tanpa alur login:
- Gunakan token OAuth LinkedIn (berlaku 60 hari) dengan scope w_member_social.
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/linkedin" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "accessToken": "ACCESS_TOKEN", "authorUrn": "AUTHOR_URN", "refreshToken": "REFRESH_TOKEN", "expiresIn": 5184000 }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/linkedin", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "accessToken": "ACCESS_TOKEN", "authorUrn": "AUTHOR_URN", "refreshToken": "REFRESH_TOKEN", "expiresIn": 5184000 }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/linkedin"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "accessToken": "ACCESS_TOKEN", "authorUrn": "AUTHOR_URN", "refreshToken": "REFRESH_TOKEN", "expiresIn": 5184000 } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/linkedin", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "accessToken": "ACCESS_TOKEN", "authorUrn": "AUTHOR_URN", "refreshToken": "REFRESH_TOKEN", "expiresIn": 5184000, }, ) print(res.json())Opsional: refreshToken.
- 3
Posting
curl -X POST "https://socialshare-api.managebiz.co/api/post" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "post": "Kami membuka lowongan baru!", "platforms": [ "linkedin" ], "linkedinOptions": { "visibility": "PUBLIC" } }'const res = await fetch("https://socialshare-api.managebiz.co/api/post", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "post": "Kami membuka lowongan baru!", "platforms": [ "linkedin" ], "linkedinOptions": { "visibility": "PUBLIC" } }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/post"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "post": "Kami membuka lowongan baru!", "platforms": [ "linkedin" ], "linkedinOptions": { "visibility": "PUBLIC" } } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/post", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "post": "Kami membuka lowongan baru!", "platforms": [ "linkedin", ], "linkedinOptions": { "visibility": "PUBLIC", }, }, ) print(res.json())- Tambah mediaUrls untuk foto (hingga 20) atau satu video.
- Jadwalkan: tambahkan "scheduleDate": "2026-11-01T09:00:00+07:00".
- Cek hasil: GET /api/post/{id} dengan id dari response. Hapus: DELETE /api/post/{id}.
- Analitik untuk platform ini belum tersedia.
Membuat pin dari foto (hingga 5) atau video.
- Setiap pin wajib memilih board (boardId).
- 1
Siapkan developer app Pinterest (sekali saja)
- developers.pinterest.com → My apps → buat app.
- Ajukan upgrade dari Trial ke Standard access (butuh video demo alur login).
Izin (scope) yang dibutuhkan:
boards:readpins:readpins:writeuser_accounts:readRedirect URI:
https://socialshare-api.managebiz.co/oauth/callback/pinterestDaftarkan di pengaturan app → "Redirect URIs".
Lalu simpan App ID dan App Secret ke medsos-share. Kuncinya langsung dicek ke platform (kode 113 kalau salah):
curl -X PUT "https://socialshare-api.managebiz.co/api/apps/pinterest" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }'const res = await fetch("https://socialshare-api.managebiz.co/api/apps/pinterest", { method: "PUT", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/apps/pinterest"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.put( "https://socialshare-api.managebiz.co/api/apps/pinterest", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "clientId": "APP_ID_ANDA", "clientSecret": "APP_SECRET_ANDA", }, ) print(res.json()) - 2
Hubungkan akun klien (pilih salah satu)
Cara A: login (disarankan)
Response berisi "url" yang berlaku 10 menit. Buka url itu di browser klien; setelah klien login dan memberi izin, akunnya otomatis tersambung lalu diarahkan ke "redirect" (opsional).
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/pinterest/oauth" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "redirect": "https://app-anda.com/akun" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/pinterest/oauth", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "redirect": "https://app-anda.com/akun" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/pinterest/oauth"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "redirect": "https://app-anda.com/akun" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/pinterest/oauth", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "redirect": "https://app-anda.com/akun", }, ) print(res.json())Cara B: token langsung
Kalau Anda sudah punya access token dari app Anda sendiri, kirim tokennya tanpa alur login:
- Gunakan token OAuth Pinterest (berlaku 30 hari) dengan scope pins:write dan boards:read.
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/pinterest" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "expiresIn": 2592000 }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/pinterest", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "expiresIn": 2592000 }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/pinterest"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "expiresIn": 2592000 } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/pinterest", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "accessToken": "ACCESS_TOKEN", "refreshToken": "REFRESH_TOKEN", "expiresIn": 2592000, }, ) print(res.json())Opsional: refreshToken.
- 3
Posting
Pin wajib punya boardId. Ambil id board dari akun yang sudah terhubung:
curl -X GET "https://socialshare-api.managebiz.co/api/accounts/pinterest/boards" \ -H "Authorization: Bearer sk_API_KEY_ANDA"const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/pinterest/boards", { method: "GET", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", }, }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/pinterest/boards"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", ], ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.get( "https://socialshare-api.managebiz.co/api/accounts/pinterest/boards", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, ) print(res.json())curl -X POST "https://socialshare-api.managebiz.co/api/post" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "post": "Inspirasi dapur minimalis", "platforms": [ "pinterest" ], "mediaUrls": [ "https://contoh.com/foto.jpg" ], "pinterestOptions": { "boardId": "ID_BOARD", "title": "Dapur minimalis", "link": "https://toko-anda.com" } }'const res = await fetch("https://socialshare-api.managebiz.co/api/post", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "post": "Inspirasi dapur minimalis", "platforms": [ "pinterest" ], "mediaUrls": [ "https://contoh.com/foto.jpg" ], "pinterestOptions": { "boardId": "ID_BOARD", "title": "Dapur minimalis", "link": "https://toko-anda.com" } }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/post"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "post": "Inspirasi dapur minimalis", "platforms": [ "pinterest" ], "mediaUrls": [ "https://contoh.com/foto.jpg" ], "pinterestOptions": { "boardId": "ID_BOARD", "title": "Dapur minimalis", "link": "https://toko-anda.com" } } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/post", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "post": "Inspirasi dapur minimalis", "platforms": [ "pinterest", ], "mediaUrls": [ "https://contoh.com/foto.jpg", ], "pinterestOptions": { "boardId": "ID_BOARD", "title": "Dapur minimalis", "link": "https://toko-anda.com", }, }, ) print(res.json())- Video pin butuh pinterestOptions.coverImageUrl.
- Jadwalkan: tambahkan "scheduleDate": "2026-11-01T09:00:00+07:00".
- Cek hasil: GET /api/post/{id} dengan id dari response. Hapus: DELETE /api/post/{id}.
- Analitik untuk platform ini belum tersedia.
Telegram
Kirim pesan, foto, atau video ke channel/grup Telegram lewat bot.
- Buat bot di @BotFather, lalu jadikan bot itu admin di channel/grup.
- Tidak perlu developer app atau review.
- 1
Hubungkan akun klien
Kredensial diverifikasi ke platform dulu, lalu disimpan terenkripsi.
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/telegram" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "botToken": "123456789:AAH-token-dari-botfather", "chatId": "@nama_channel" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/telegram", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "botToken": "123456789:AAH-token-dari-botfather", "chatId": "@nama_channel" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/telegram"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "botToken": "123456789:AAH-token-dari-botfather", "chatId": "@nama_channel" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/telegram", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "botToken": "123456789:AAH-token-dari-botfather", "chatId": "@nama_channel", }, ) print(res.json()) - 2
Posting
curl -X POST "https://socialshare-api.managebiz.co/api/post" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "post": "Halo channel! 📢", "platforms": [ "telegram" ] }'const res = await fetch("https://socialshare-api.managebiz.co/api/post", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "post": "Halo channel! 📢", "platforms": [ "telegram" ] }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/post"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "post": "Halo channel! 📢", "platforms": [ "telegram" ] } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/post", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "post": "Halo channel! 📢", "platforms": [ "telegram", ], }, ) print(res.json())- Format teks: "telegramOptions": { "parseMode": "HTML" }.
- Jadwalkan: tambahkan "scheduleDate": "2026-11-01T09:00:00+07:00".
- Cek hasil: GET /api/post/{id} dengan id dari response. Hapus: DELETE /api/post/{id}.
- Analitik untuk platform ini belum tersedia.
Bluesky
Posting teks, hingga 4 foto, atau satu video ke Bluesky.
- Buat App Password di Bluesky: Settings → Privacy and Security → App Passwords.
- Tidak perlu developer app atau review.
- 1
Hubungkan akun klien
Kredensial diverifikasi ke platform dulu, lalu disimpan terenkripsi.
curl -X POST "https://socialshare-api.managebiz.co/api/accounts/bluesky" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "identifier": "nama.bsky.social", "appPassword": "xxxx-xxxx-xxxx-xxxx" }'const res = await fetch("https://socialshare-api.managebiz.co/api/accounts/bluesky", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "identifier": "nama.bsky.social", "appPassword": "xxxx-xxxx-xxxx-xxxx" }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/accounts/bluesky"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "identifier": "nama.bsky.social", "appPassword": "xxxx-xxxx-xxxx-xxxx" } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/accounts/bluesky", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "identifier": "nama.bsky.social", "appPassword": "xxxx-xxxx-xxxx-xxxx", }, ) print(res.json()) - 2
Posting
curl -X POST "https://socialshare-api.managebiz.co/api/post" \ -H "Authorization: Bearer sk_API_KEY_ANDA" \ -H "Content-Type: application/json" \ -d '{ "post": "Halo Bluesky 🦋", "platforms": [ "bluesky" ] }'const res = await fetch("https://socialshare-api.managebiz.co/api/post", { method: "POST", headers: { "Authorization": "Bearer sk_API_KEY_ANDA", "Content-Type": "application/json", }, body: JSON.stringify({ "post": "Halo Bluesky 🦋", "platforms": [ "bluesky" ] }), }); console.log(await res.json());<?php $ch = curl_init("https://socialshare-api.managebiz.co/api/post"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_API_KEY_ANDA", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => <<<'JSON' { "post": "Halo Bluesky 🦋", "platforms": [ "bluesky" ] } JSON, ]); $data = json_decode(curl_exec($ch), true); print_r($data);import requests res = requests.post( "https://socialshare-api.managebiz.co/api/post", headers={"Authorization": "Bearer sk_API_KEY_ANDA"}, json={ "post": "Halo Bluesky 🦋", "platforms": [ "bluesky", ], }, ) print(res.json())- Teks maksimal 300 karakter.
- Jadwalkan: tambahkan "scheduleDate": "2026-11-01T09:00:00+07:00".
- Cek hasil: GET /api/post/{id} dengan id dari response. Hapus: DELETE /api/post/{id}.
- Analitik: likes, reposts, replies, quotes.
Posting ke banyak platform sekaligus
Setelah beberapa akun terhubung, cukup sebutkan semuanya di "platforms" (atau ["all"]). Hasilnya per platform ada di "postIds" dan "errors".
curl -X POST "https://socialshare-api.managebiz.co/api/post" \
-H "Authorization: Bearer sk_API_KEY_ANDA" \
-H "Content-Type: application/json" \
-d '{
"post": "Satu posting, banyak platform 🚀",
"platforms": [
"facebook",
"instagram",
"telegram"
],
"mediaUrls": [
"https://contoh.com/foto.jpg"
]
}'const res = await fetch("https://socialshare-api.managebiz.co/api/post", {
method: "POST",
headers: {
"Authorization": "Bearer sk_API_KEY_ANDA",
"Content-Type": "application/json",
},
body: JSON.stringify({
"post": "Satu posting, banyak platform 🚀",
"platforms": [
"facebook",
"instagram",
"telegram"
],
"mediaUrls": [
"https://contoh.com/foto.jpg"
]
}),
});
console.log(await res.json());<?php
$ch = curl_init("https://socialshare-api.managebiz.co/api/post");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer sk_API_KEY_ANDA",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => <<<'JSON'
{
"post": "Satu posting, banyak platform 🚀",
"platforms": [
"facebook",
"instagram",
"telegram"
],
"mediaUrls": [
"https://contoh.com/foto.jpg"
]
}
JSON,
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);import requests
res = requests.post(
"https://socialshare-api.managebiz.co/api/post",
headers={"Authorization": "Bearer sk_API_KEY_ANDA"},
json={
"post": "Satu posting, banyak platform 🚀",
"platforms": [
"facebook",
"instagram",
"telegram",
],
"mediaUrls": [
"https://contoh.com/foto.jpg",
],
},
)
print(res.json())