/api/v4/social/brands/{brandId}/connections/linkDapatkan tautan koneksi
Mengembalikan URL yang dihosting dan berumur pendek untuk memandu pengguna akhir menghubungkan satu platform sosial ke sebuah merek.
Parameter
Path
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| brandId | string | wajib | Brand UUID the connection will be attached to. |
Body
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| channel | string | wajib | Platform to connect: `FACEBOOK`, `INSTAGRAM`, `TWITTER` (X), `LINKEDIN` or `PINTEREST`. |
| redirectUrl | string | wajib | Absolute https URL in your application the user is returned to when the flow finishes. Must be a URL you control. |
| errorUrl | string | opsional | Absolute https URL the user is returned to if they cancel or the platform rejects the authorization. Defaults to `redirectUrl` when omitted. |
| state | string | opsional | Opaque string echoed back on the return URL unchanged. Use it to correlate the return with the session that started the flow; it is not validated or interpreted. |
Contoh permintaan
Body siap tempel. Ganti ID dan nilai placeholder dengan milik Anda.
{ "channel": "INSTAGRAM", "redirectUrl": "https://app.example.com/social/connected", "errorUrl": "https://app.example.com/social/connect-failed", "state": "sess_9f2c1e64"}Respons
200Link generated. Redirect the end user to `url`; `expiresIn` is how many seconds it stays valid.
{ "data": { "connectSocialAccount": { "status": "success", "url": "https://social.listingsapi.com/connect/start?token=bfac8e06-8d72-4810-9c50-ae7ee12a7b52", "title": null, "token": null, "expiresIn": 900 } }}200The link could not be issued. `status` is `failed` and `title` carries the reason: most often the account is at its connection cap (`SY95042`, counted on billable connections, so recent disconnects have not freed room) or the platform is not enabled for the account (`SY95044`).
{ "data": { "connectSocialAccount": { "status": "failed", "url": null, "title": "SY95042: Connection limit reached for this account", "token": null, "expiresIn": null } }}401Unauthenticated, missing or invalid API key.
404No brand with that ID on this account (`SY95043`).
Menerbitkan URL berumur pendek yang menghubungkan satu platform sosial ke satu merek. Anda tidak pernah menangani kredensial OAuth platform tersebut: arahkan pengguna akhir Anda ke url yang dikembalikan, mereka menyelesaikan layar persetujuan platform dan memilih Halaman, papan, atau organisasi sebagai tujuan publikasi, lalu mereka diarahkan kembali ke redirectUrl Anda.
Ini adalah satu-satunya operasi tulis Social dengan struktur isi datar. Semua operasi tulis lainnya di Social API dibungkus dalam objek input; operasi ini tidak. Kirim channel, redirectUrl, serta errorUrl dan state jika diperlukan, di tingkat teratas.
Kasus penggunaan: koneksi kanal secara mandiri di dalam produk Anda. Tampilkan kelima platform kepada pengguna, dan saat mereka memilih salah satunya, panggil endpoint ini dengan channel tersebut dan state yang mengidentifikasi sesi mereka. Arahkan mereka ke url. Saat mereka kembali ke redirectUrl Anda dengan status=success, periksa GET /social/brands/{brandId}/connections secara berkala hingga kanal baru muncul, lalu izinkan mereka menyusun postingan pertama dengan POST /social/posts.
Tujuan pengalihan kembali pengguna
Saat alur berakhir, pengguna diarahkan ke redirectUrl (atau errorUrl) Anda dengan parameter kueri yang ditambahkan:
https://app.example.com/social/connected ?status=success &brandId=6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902 &platform=INSTAGRAM &state=sess_9f2c1e64 &connectedAccountId=b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7Catatan.
- Tautan memiliki masa berlaku.
expiresInmemuat masa berlakunya dalam detik. Tautan ini hanya dapat digunakan sekali: terbitkan saat pengguna mengeklik "hubungkan", bukan sebelumnya, dan jangan pernah menyimpannya. Jika pengguna meninggalkan alur, panggil endpoint ini lagi untuk mendapatkan URL baru. - Koneksi dibuat secara asinkron. Pengguna kembali ke
redirectUrlAnda sesaat sebelum baris koneksi tersedia, sehingga pembacaan daftar koneksi segera setelah pengguna kembali memang dapat menghasilkan daftar yang belum memuat koneksi tersebut. Periksa daftar koneksi secara berkala selama beberapa detik, alih-alih menganggap hasil pembacaan pertama yang kosong sebagai kegagalan. - Instagram memerlukan akun Business atau Creator yang ditautkan ke Halaman Facebook. Akun Instagram pribadi tidak dapat dihubungkan, dan layar persetujuan platform tidak akan menawarkannya. Jika pengguna Anda mengalami hal ini, minta mereka mengonversi akun tersebut di aplikasi Instagram dan menautkannya ke Halaman yang mereka kelola, lalu terbitkan ulang tautannya.
TWITTERadalah X. Nilai enum tetapTWITTERdemi kompatibilitas dengan versi sebelumnya; produknya adalah X. Nilai platform berupa nama enum dalam huruf kapital — pengiriman"instagram"akan ditolak.redirectUrldanerrorUrlharus berupa URLhttpsabsolut. URL relatif atauhttpditolak denganSY95049.- Koneksi adalah sumber daya yang dihitung penggunaannya. Setiap penautan menggunakan satu kuota bersama untuk seluruh akun — 20 koneksi pada Social Launch, 125 pada Social Growth, ditambah lima untuk setiap paket koneksi seharga $25/bulan, hingga batas maksimum layanan mandiri sebesar 250. Jumlah merek sendiri tidak dibatasi, sehingga pemanggilan inilah yang selalu kehabisan kapasitas, bukan pembuatan merek. Saat kuota penuh, permintaan tautan mengembalikan
status: "failed"denganSY95042. Lihat Paket dan tambahan dan periksa sisa kapasitas Anda dariGET /social/limits. - Ini adalah padanan Social untuk tautan koneksi Facebook di tingkat lokasi, tetapi keduanya merupakan produk terpisah dan koneksi yang dibuat di salah satunya tidak terlihat di produk lainnya.
Operasi tulis: tidak dijalankan pada akun aktif. Permintaan dan respons yang ditampilkan dibuat berdasarkan skema API.
curl -X POST 'https://listingsapi.com/api/v4/social/brands/<brandId>/connections/link' \ -H "Authorization: API $LISTINGSAPI_KEY" \ -H 'Content-Type: application/json' \ -d '{ "channel": "INSTAGRAM", "redirectUrl": "https://app.example.com/social/connected", "errorUrl": "https://app.example.com/social/connect-failed", "state": "sess_9f2c1e64" }'