Afilipost ← Ana sayfaya dön

Hızlı başlangıç

API anahtarından planlanmış gönderiye, tek oturuşta.

Afilipost önce API olarak yazıldı: panelin yaptığı her şeyin çağırabileceğin bir ucu var. Bu sayfa seni API anahtarından planlanmış bir gönderiye götürür.

Kimlik doğrulama

Her istek anahtarını bearer olarak taşır. Anahtarlar panelden (Anahtarlar ekranı) üretilir ve bir kez gösterilir — biz yalnızca SHA-256 özetini tutarız; veritabanı sızsa bile anahtarlar sızmaz.

Authorization: Bearer yay_·············
Content-Type: application/json

Temel adres: https://api.afilipost.com — aynı yollar /api öneksiz de cevap verir; Zernio biçiminde yazılmış bir istemci değişmeden çalışır.

Yayınlanmış gönderiye en kısa yol

  1. /v1/media/presign ile yükleme adresi al ve dosyayı oraya PUT et — baytlar doğrudan depoya gider, API'ye uğramaz.
  2. /v1/posts ile gönderiyi oluştur; mediaItems, verilen publicUrl'i göstersin. Bir gönderi birden çok hesabı hedefleyebilir.
  3. Bir webhook kaydet ve çıktığı an post.published al — ya da platformPostId belirene kadar /v1/posts/{id} adresini yokla.
  4. Yorum → DM kuralını /v1/comment-automations ile bağla.

Python ile hızlı başlangıç

Yayın yolunun tamamı, yalnızca standart kütüphane — kurulacak SDK yok:

import json, urllib.request

BASE = "https://api.afilipost.com/api"
KEY  = "yay_………"

def call(path, payload=None, method="GET"):
    data = json.dumps(payload).encode() if payload else None
    req = urllib.request.Request(BASE + path, data=data, method=method,
        headers={"Authorization": f"Bearer {KEY}",
                 **({"Content-Type": "application/json"} if data else {})})
    with urllib.request.urlopen(req, timeout=60) as r:
        return json.loads(r.read() or "{}")

# 1) yükleme adresi al, dosyayı DOĞRUDAN depoya gönder
grant = call("/v1/media/presign",
             {"filename": "reel.mp4", "contentType": "video/mp4"}, "POST")
with open("reel.mp4", "rb") as f:
    put = urllib.request.Request(grant["uploadUrl"], data=f.read(),
        method="PUT", headers={"Content-Type": "video/mp4"})
    urllib.request.urlopen(put, timeout=600)

# 2) gönderiyi planla
account = call("/v1/accounts?platform=instagram")["accounts"][0]
post = call("/v1/posts", {
    "content": "Bugünün reposu 🚀",
    "mediaItems": [{"type": "video", "url": grant["publicUrl"],
                    "filename": "reel.mp4", "mimeType": "video/mp4"}],
    "platforms": [{"platform": "instagram", "accountId": account["_id"],
                   "platformSpecificData": {"firstComment": "Link için REPO yaz"}}],
    "scheduledFor": "2026-08-25T19:40:00.000Z",
    "idempotencyKey": "ilk-deneme-1",
}, "POST")
print(post["post"]["_id"], post["post"]["status"])

Temel kavramlar

Sırada ne var