Sistemlerinizi Marcomm AI'a bağlayın
Haber özetlerini, kritik haberleri ve bekleyen onayları kendi sistemlerinizden okuyun; onayları kendi onay araçlarınızdan kabul edin veya reddedin. API, kısa bir incelemenin ardından Team planında ve üzerinde kullanılabilir.
Başlangıç
- 1Erişim için başvurun
Sisteminizi anlatın ve ihtiyaç duyduğunuz verileri seçin. Başvuruları tek tek inceliyoruz.
- 2Anahtar oluşturun
Onaydan sonra Ayarlar, API bölümünde bir anahtar oluşturun. Anahtar yalnızca bir kez gösterilir, bu yüzden kendi sisteminizde saklayın.
- 3İstek gönderin
Anahtarı Authorization başlığında gönderin ve aşağıdaki uç noktalardan istediğinizi çağırın.
Örnek istek
curl https://app.marcomm.works/api/v1/news/digest?days=7 \
-H "Authorization: Bearer mc_live_..."Kimlik doğrulama
Anahtarınızı her istekte Bearer belirteci olarak gönderin. Kişisel anahtar, onu oluşturan kişi adına çalışır; bu nedenle o kişinin adına onayları okuyabilir ve karara bağlayabilir. Çalışma alanı anahtarını bir yönetici oluşturur ve yalnızca okuyabilir. Anahtarların süresi dolabilir, IP adresleriyle sınırlandırılabilir ve yenilenebilir: yenilemeden sonra eski anahtar 24 saat daha çalışmaya devam eder.
Kapsamlar
Her anahtar yalnızca başvurunuzun onaylandığı kapsamları taşır.
- news
- Haber özeti, makaleler ve medya kuruluşları.
- crisis
- Kritik haberler ve kriz olayları.
- approvals
- Bekleyen onaylar ve bunların kişisel anahtarla onaylanması veya reddedilmesi.
- content
- Basın bültenlerini ve blog yazılarını okuma.
Uç noktalar
Yollar /api/v1 ile başlar. Okuma uç noktaları GET kullanır ve sorgu parametreleri alır. Yanıt, {"data": ...} biçiminde JSON olarak gelir.
| Yöntem | Yol | Kapsam | Ne yapar |
|---|---|---|---|
| GET | /api/v1/news/digest | news | Bir dönem için haber hacmi, duygu durumu ve öne çıkan medya kuruluşları. |
| GET | /api/v1/news/articles | news | Haber kapsamında arama yapar. |
| GET | /api/v1/news/outlets | news | Şirketlerinizi haberleştiren medya kuruluşları. |
| GET | /api/v1/crisis/incidents | crisis | Kriz olayları ve kritik makaleler. |
| GET | /api/v1/approvals | approvals | Anahtar sahibini bekleyen basın bültenleri ve blog yazıları ile anahtar sahibinin onaya gönderdikleri. |
| GET | /api/v1/press-releases | content | Basın bültenlerini listeler. |
| GET | /api/v1/press-releases/{id} | content | Giriş paragrafı ve metniyle tek bir basın bülteni. |
| GET | /api/v1/blog-posts | content | Blog yazılarını listeler. |
| GET | /api/v1/blog-posts/{id} | content | Metniyle tek bir blog yazısı. |
| POST | /api/v1/approvals/press-releases/{id} | approvals | Anahtar sahibini bekleyen bir basın bültenini onaylar veya reddeder. |
| POST | /api/v1/approvals/blog-posts/{id} | approvals | Anahtar sahibini bekleyen bir blog yazısını onaylar veya reddeder. |
Onaylama ve reddetme
Öğeye {"decision": "approve"} veya {"decision": "reject", "comment": "..."} gönderin. Reddetmek için bir açıklama gerekir. Karar, uygulamadaki ve Slack'teki kurallara tabidir ve anahtar sahibi adına kaydedilir. Metinde onay gerektiren ifadeler varsa uyarılarla birlikte 409 confirmation_required yanıtı alırsınız ve isteği "force": true ile yeniden gönderebilirsiniz.
curl -X POST https://app.marcomm.works/api/v1/approvals/press-releases/<id> \
-H "Authorization: Bearer mc_live_..." \
-H "Content-Type: application/json" \
-d '{"decision":"reject","comment":"Please fix the headline."}'İstek sınırları
Sınırlar çalışma alanı başına, dakika ve gün (UTC) bazında belirlenir. Yanıtlar aşağıdaki başlıkları taşır. Bir sınır aşıldığında Retry-After ile 429 alırsınız. Sınırı yükseltmek için Ayarlar, API bölümünden artış talep edin. Ekibimiz talebi inceler.
- X-RateLimit-Limit
- Dakikada izin verilen istek sayısı.
- X-RateLimit-Remaining
- Geçerli dakikada kalan istek sayısı.
- X-RateLimit-Reset
- Dakika penceresinin sıfırlandığı Unix zamanı.
- X-RateLimit-Day-Limit
- Günde izin verilen istek sayısı.
- X-RateLimit-Day-Remaining
- Bugün kalan istek sayısı.
- Retry-After
- Yeniden denemeden önce beklenecek saniye. Yalnızca 429 durumunda.
Hatalar
Hatalar {"error": {"code": ..., "message": ...}} biçiminde JSON olarak döner.
| Kod | Durum | Anlamı |
|---|---|---|
| invalid_key | 401 | Anahtar eksik, hatalı biçimli veya iptal edilmiş. |
| expired | 401 | Anahtarın süresi dolmuş. Yeni bir anahtar oluşturun veya anahtarı yenileyin. |
| ip_denied | 403 | Anahtar başka IP adresleriyle sınırlandırılmış. |
| plan_required | 403 | Çalışma alanı Team planında veya üzerinde değil. |
| access_required | 403 | Bu çalışma alanı için API erişimi onaylanmamış. |
| suspended | 403 | Bu çalışma alanı için API erişimi askıya alınmış. |
| scope_denied | 403 | Anahtar, bu uç noktanın gerektirdiği kapsama sahip değil. |
| personal_key_required | 403 | Yalnızca kişisel anahtar onaylayabilir veya reddedebilir. |
| denied | 403 | Anahtar sahibinin rolü buna izin vermiyor. |
| unknown_endpoint | 404 | Böyle bir uç nokta yok. |
| comment_required | 400 | Reddetmek için bir gerekçe gerekir. |
| confirmation_required | 409 | Uyarılar onay gerektiriyor. force değerini true yaparak yeniden gönderin. |
| rate_limited | 429 | Dakika başına sınır aşıldı. |
| daily_limit | 429 | Günlük sınıra ulaşıldı. |
Webhook'lar
Uyarılar, onay istekleri ve sabah özeti sisteminize de gönderilebilir. Ayarlar, API, Webhook bölümünden bir hedef ekleyin. Her istek; event (alert, approval veya briefing), workspace, title, text, url, data ve sentAt alanlarını içeren bir JSON'dur. Onay isteği, API üzerinden okuyup karara bağlamak için kullanabileceğiniz data.kind (press_release, blog veya event) ve data.id taşır.
İstekler imzalıdır. İsteğin ham gövdesinin HMAC-SHA256 değerini imza anahtarınızla hesaplayın ve sha256=<hex> biçimindeki X-Marcomm-Signature başlığıyla karşılaştırın. Eşleşmeyen istekleri reddedin.
Node.js'te Webhook doğrulama
import { createHmac, timingSafeEqual } from 'node:crypto';
export function isFromMarcomm(rawBody: string, signature: string, secret: string) {
const expected = 'sha256=' + createHmac('sha256', secret).update(rawBody).digest('hex');
const a = Buffer.from(expected);
const b = Buffer.from(signature);
return a.length === b.length && timingSafeEqual(a, b);
}Bağlantı rehberleri
Onay sisteminizden onaylayın
- Genel bir Webhook hedefi ekleyin ve onay isteklerini açın.
- Bir onay Webhook'u geldiğinde imzayı doğrulayın ve data.kind ile data.id alanlarını okuyun.
- İsteği onay sisteminizde gösterin. Metne ihtiyacınız varsa GET press-releases/{id} veya blog-posts/{id} ile okuyun.
- Kararı, karar veren kişinin kişisel anahtarıyla gönderin. Etkinlikler ve e-posta gönderimleri, iletideki bağlantıdan uygulamada karara bağlanır.
Haber özetini panonuza aktarın
- news ve crisis kapsamlarıyla bir çalışma alanı anahtarı oluşturun.
- news/digest uç noktasını belirli aralıklarla, örneğin her sabah çağırın.
- Kendi uyarı sisteminizi istiyorsanız crisis/incidents uç noktasını daha sık çağırın. Sınırlarınız içinde kalmak için X-RateLimit başlıklarını izleyin.
Uyarılar sohbetinizde
- Teams ve Google Chat için odanın Webhook URL'sini oluşturun ve Ayarlar, API, Webhook bölümünden hedef olarak ekleyin.
- JANDI, Dooray! ve Chatwork için bağlantıyı Ayarlar, Entegrasyonlar bölümünden kurun.
- Her hedefin uyarılardan, onay isteklerinden ve sabah özetinden hangilerini alacağını seçin, ardından test mesajı gönderin.
Bağlanmaya hazır mısınız?
Çalışma alanının sahibi veya yöneticisi Ayarlar, API bölümünden başvurur. İnceleme tamamlandığında e-posta ve uygulama içinde bildirim alırsınız.
API ayarlarını aç