/api/v4/social/brands/{brandId}/connections/linkBağ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.
Parametreler
Yol
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| brandId | string | zorunlu | Brand UUID the connection will be attached to. |
Gövde
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| channel | string | zorunlu | Platform to connect: `FACEBOOK`, `INSTAGRAM`, `TWITTER` (X), `LINKEDIN` or `PINTEREST`. |
| redirectUrl | string | zorunlu | Absolute https URL in your application the user is returned to when the flow finishes. Must be a URL you control. |
| errorUrl | string | isteğ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. |
| state | string | isteğ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.
{ "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.
{ "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`).
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:
https://app.example.com/social/connected ?status=success &brandId=6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902 &platform=INSTAGRAM &state=sess_9f2c1e64 &connectedAccountId=b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7Notlar.
- 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
redirectUrladresinize 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ğeriTWITTERolarak 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.redirectUrlveerrorUrl, mutlakhttpsURL'leri olmalıdır. Göreli bir URL veyahttpURL'si,SY95049ile 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,
SY95042ile birliktestatus: "failed"döndürür. Planlar ve eklentiler bölümüne bakın ve kalan kapasiteniziGET /social/limitskaynağı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.
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" }'