POST/api/v4/social/brands/{brandId}/connections/link

Bağlantı kurma bağlantısı alın

Son kullanıcıya bir sosyal platformu bir markaya bağlama adımlarında rehberlik eden, kısa ömürlü, barındırılan bir URL döndürür.

API anahtarı gerektirir. Başlık biçimi ve anahtar yenileme için Kimlik doğrulama bölümüne bakın.

Parametreler

Yol

AdTürZorunluAçıklama
brandIdstringzorunluBrand UUID the connection will be attached to.

Gövde

AdTürZorunluAçıklama
channelstringzorunluPlatform to connect: `FACEBOOK`, `INSTAGRAM`, `TWITTER` (X), `LINKEDIN` or `PINTEREST`.
redirectUrlstringzorunluAbsolute https URL in your application the user is returned to when the flow finishes. Must be a URL you control.
errorUrlstringisteğe bağlıAbsolute https URL the user is returned to if they cancel or the platform rejects the authorization. Defaults to `redirectUrl` when omitted.
statestringisteğe bağlı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.

Örnek istek

Yapıştırmaya hazır gövde. Yer tutucu kimlikleri ve değerleri kendi değerlerinizle değiştirin.

Request body
{  "channel": "INSTAGRAM",  "redirectUrl": "https://app.example.com/social/connected",  "errorUrl": "https://app.example.com/social/connect-failed",  "state": "sess_9f2c1e64"}

Yanıtlar

200Link generated. Redirect the end user to `url`; `expiresIn` is how many seconds it stays valid.
Response
{  "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`).
Response
{  "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`).

Bir sosyal platformu bir markaya bağlayan kısa ömürlü bir URL oluşturur. Platformun OAuth kimlik bilgilerini hiçbir zaman işlemezsiniz: son kullanıcınızı döndürülen url adresine yönlendirin; kullanıcı platformun izin ekranındaki adımları tamamlar, yayın yapacağı Sayfayı, panoyu veya kuruluşu seçer ve redirectUrl adresinize geri yönlendirilir.

Bu, Social API'de düz bir gövde kullanan tek yazma işlemidir. Social API'deki diğer tüm yazma işlemleri bir input nesnesiyle sarmalanır; bu işlem sarmalanmaz. channel, redirectUrl ve isteğe bağlı olarak errorUrl ile state alanlarını en üst düzeyde gönderin.

Kullanım senaryosu: kullanıcıların ürününüzün içinden kendi başlarına kanal bağlaması. Kullanıcıya beş platformu gösterin ve birini seçtiğinde bu uç noktayı, seçilen channel ve kullanıcının oturumunu tanımlayan bir state ile çağırın. Kullanıcıyı url adresine yönlendirin. Kullanıcı status=success ile redirectUrl adresinize geri döndüğünde, yeni kanal görünene kadar GET /social/brands/{brandId}/connections kaynağını düzenli aralıklarla sorgulayın, ardından POST /social/posts ile ilk gönderisini oluşturmasına izin verin.

Kullanıcının geri yönlendirildiği adres

Akış sona erdiğinde kullanıcı, sorgu parametreleri eklenmiş olarak redirectUrl (veya errorUrl) adresinize yönlendirilir:

ParametreHer zaman bulunurAçıklama
statusevetsuccess veya error.
brandIdevetBağlantının eklendiği marka. Çağrıda kullandığınız yol parametresiyle eşleşir.
platformevetBağlanan platform, e.g. INSTAGRAM.
stateyalnızca gönderdiysenizİçeriği yorumlanmadan kullanılan ve değiştirilmeden geri döndürülen değeriniz.
connectedAccountIdyalnızca status=success durumundaYeni bağlantının UUID'si; bağlantılar listesinde görünen id ile aynıdır.
Code
https://app.example.com/social/connected  ?status=success  &brandId=6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902  &platform=INSTAGRAM  &state=sess_9f2c1e64  &connectedAccountId=b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7

Notlar.

  • Bağlantının süresi dolar. expiresIn, geçerlilik süresini saniye cinsinden içerir. Tek kullanımlıktır: önceden değil, kullanıcı "bağlan" düğmesine tıkladığı anda oluşturun ve asla saklamayın. Kullanıcı akışı yarıda bırakırsa yeni bir URL almak için bu uç noktayı yeniden çağırın.
  • Bağlantı kaydı eşzamansız olarak oluşturulur. Kullanıcı, bağlantı satırı oluşmadan kısa bir süre önce redirectUrl adresinize geri döner; bu nedenle dönüşün hemen ardından bağlantılar listesini okuduğunuzda bağlantının henüz listede bulunmaması normaldir. İlk boş okuma sonucunu bir başarısızlık olarak değerlendirmek yerine bağlantılar listesini birkaç saniye boyunca düzenli aralıklarla sorgulayın.
  • Instagram için bir Facebook Sayfasına bağlı bir İşletme veya İçerik Üreticisi hesabı gerekir. Kişisel bir Instagram hesabı bağlanamaz ve platformun izin ekranı böyle bir hesabı seçenek olarak sunmaz. Kullanıcılarınız bu durumla karşılaşırsa Instagram uygulamasında hesap türünü değiştirmelerini ve hesabı yönettikleri Sayfaya bağlamalarını sağlayın, ardından bağlantıyı yeniden oluşturun.
  • TWITTER, X'tir. Geriye dönük uyumluluk için enum değeri TWITTER olarak kalmıştır; ürünün adı X'tir. Platform değerleri, büyük harflerle yazılan enum adlarıdır; "instagram" gönderilirse istek reddedilir.
  • redirectUrl ve errorUrl, mutlak https URL'leri olmalıdır. Göreli bir URL veya http URL'si, SY95049 ile reddedilir.
  • Kullanımı ölçülen kaynak bağlantılardır. Her bağlantı, hesap genelindeki tek bir havuzdan kullanılır; bu havuz Social Launch'ta 20, Social Growth'ta 125 bağlantı içerir ve aylık 25 $ tutarındaki her bağlantı paketiyle beş bağlantı daha eklenerek kullanıcının kendi başına satın alabileceği 250 bağlantılık üst sınıra kadar çıkarılabilir. Markaların kendisi sınırsızdır; dolayısıyla kapasitesi dolan işlem her zaman bu çağrıdır, hiçbir zaman marka oluşturma işlemi değildir. Havuz dolduğunda bağlantı isteği, SY95042 ile birlikte status: "failed" döndürür. Planlar ve eklentiler bölümüne bakın ve kalan kapasitenizi GET /social/limits kaynağından okuyun.
  • Bu, konum düzeyindeki Facebook bağlantı kurma bağlantısının Social karşılığıdır; ancak bunlar iki ayrı üründür ve birinde kurulan bağlantılar diğerinde görünmez.

Yazma işlemi: canlı hesap üzerinde yürütülmez. Gösterilen istek ve yanıt, API şemasından oluşturulmuştur.

Request
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"  }'