İçeriğe geç
Geliştiriciler

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ıç

  1. 1
    Erişim için başvurun

    Sisteminizi anlatın ve ihtiyaç duyduğunuz verileri seçin. Başvuruları tek tek inceliyoruz.

  2. 2
    Anahtar 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. 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öntemYolKapsamNe yapar
GET/api/v1/news/digestnewsBir dönem için haber hacmi, duygu durumu ve öne çıkan medya kuruluşları.
GET/api/v1/news/articlesnewsHaber kapsamında arama yapar.
GET/api/v1/news/outletsnewsŞirketlerinizi haberleştiren medya kuruluşları.
GET/api/v1/crisis/incidentscrisisKriz olayları ve kritik makaleler.
GET/api/v1/approvalsapprovalsAnahtar sahibini bekleyen basın bültenleri ve blog yazıları ile anahtar sahibinin onaya gönderdikleri.
GET/api/v1/press-releasescontentBasın bültenlerini listeler.
GET/api/v1/press-releases/{id}contentGiriş paragrafı ve metniyle tek bir basın bülteni.
GET/api/v1/blog-postscontentBlog yazılarını listeler.
GET/api/v1/blog-posts/{id}contentMetniyle tek bir blog yazısı.
POST/api/v1/approvals/press-releases/{id}approvalsAnahtar sahibini bekleyen bir basın bültenini onaylar veya reddeder.
POST/api/v1/approvals/blog-posts/{id}approvalsAnahtar 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.

KodDurumAnlamı
invalid_key401Anahtar eksik, hatalı biçimli veya iptal edilmiş.
expired401Anahtarın süresi dolmuş. Yeni bir anahtar oluşturun veya anahtarı yenileyin.
ip_denied403Anahtar başka IP adresleriyle sınırlandırılmış.
plan_required403Çalışma alanı Team planında veya üzerinde değil.
access_required403Bu çalışma alanı için API erişimi onaylanmamış.
suspended403Bu çalışma alanı için API erişimi askıya alınmış.
scope_denied403Anahtar, bu uç noktanın gerektirdiği kapsama sahip değil.
personal_key_required403Yalnızca kişisel anahtar onaylayabilir veya reddedebilir.
denied403Anahtar sahibinin rolü buna izin vermiyor.
unknown_endpoint404Böyle bir uç nokta yok.
comment_required400Reddetmek için bir gerekçe gerekir.
confirmation_required409Uyarılar onay gerektiriyor. force değerini true yaparak yeniden gönderin.
rate_limited429Dakika başına sınır aşıldı.
daily_limit429Gü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

  1. Genel bir Webhook hedefi ekleyin ve onay isteklerini açın.
  2. Bir onay Webhook'u geldiğinde imzayı doğrulayın ve data.kind ile data.id alanlarını okuyun.
  3. İsteği onay sisteminizde gösterin. Metne ihtiyacınız varsa GET press-releases/{id} veya blog-posts/{id} ile okuyun.
  4. 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

  1. news ve crisis kapsamlarıyla bir çalışma alanı anahtarı oluşturun.
  2. news/digest uç noktasını belirli aralıklarla, örneğin her sabah çağırın.
  3. 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

  1. Teams ve Google Chat için odanın Webhook URL'sini oluşturun ve Ayarlar, API, Webhook bölümünden hedef olarak ekleyin.
  2. JANDI, Dooray! ve Chatwork için bağlantıyı Ayarlar, Entegrasyonlar bölümünden kurun.
  3. 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ç