Ders 4 / 98 dk okuma

Platform API'leri: dosya, e-posta, webhook, AI

devany.files, devany.mail, devany.hook ve devany.ai — kapılar, kotalar ve hata kodları.

SDK yüzeyi

Her zaman açık
devany.db — paylaşımlı veridevany.files — görsel depolamadevany.auth / devany.user
Sahip açarsa
devany.mail — işlemsel e-postadevany.hook — webhook köprüsüdevany.ai — uygulama içi zekâ
Kapalıyken davranış
Çağrı çökmez, hata kodu fırlatır'mail_disabled' · 'hook_disabled' · 'ai_disabled'Arayüz kibar bir mesajla devam etmeli

Görsel yükleme (devany.files)

js
// Dosya seçici <input type="file" accept="image/*"> — mobilde kamerayı da açar.
const file = input.files[0];
const { url } = await devany.files.upload(file);   // SDK istemcide küçültür

// Kayıtta yalnız URL saklanır — asla base64 gömme (doküman 20K karakter).
await devany.db.put('boats', { name, price, photo: url });

await devany.files.remove(url);      // kayıt silinince görseli de sil
const { used, quota } = await devany.files.usage();

Yükleme başarısız olabilir: 'file_too_large' ve 'quota_exceeded' kodlarını kullanıcının dilinde bir mesaja çevir ve görselsiz bir yedek görünüm bırak.

İşlemsel e-posta ve webhook

js
// Tek alıcılı işlemsel e-posta — rezervasyon onayı, sipariş bildirimi.
try {
  await devany.mail.send({
    to: booking.email,
    subject: 'Randevunuz onaylandı',
    text: `${booking.name}, randevunuz ${booking.at} için alındı.`,
  });
} catch (e) {
  if (e.message === 'mail_disabled') showNote('E-posta kapalı');
  else if (e.message === 'test_mode_owner_only') showNote('Taslakta yalnız sahibe gider');
}

// Alan olayını sahibin otomasyonuna (Zapier/Make/n8n) ilet.
await devany.hook.send('booking.created', { id: booking.id, at: booking.at });

Taslak uygulamada e-postalar TEST modundadır: yalnız sahibin adresine, [TEST] önekiyle gider. Kota ve ücretlendirme sunucudadır.

Uygulama içi zekâ (devany.ai)

js
// Metin — kısa, yapılandırılmış çıktı iste; sohbet dökümü değil.
const summary = await devany.ai.ask(
  'Bu ayın randevularını 3 maddede özetle: ' + JSON.stringify(rows).slice(0, 4000),
  { system: 'Kısa, sayısal ve iddiasız yaz.' }
);

// Görsel yorumlama ve üretme
const alt = await devany.ai.see(photoUrl, 'Bu üründe ne var?');
const hero = await devany.ai.image('Minimal, sıcak beyaz arka planlı ürün fotoğrafı');

Kapalıyken çağrı 'ai_disabled' fırlatır — özelliği gizle ya da kibarca devre dışı bırak, çöken bir ekran gösterme.

Kapı, kota ve maliyet

Sahip açmalıKrediden düşerTaslakta çalışır
devany.db / devany.user
devany.files
devany.mailYalnız sahibe
devany.hook
devany.ai

Özet

  • Veri ve dosya her zaman açıktır; e-posta, webhook ve AI sahibin anahtarına bağlıdır.
  • Kapalı bir yetenek çökmez — kodla yakalanacak bir hata kodu fırlatır.
  • Görsel kayda değil dosya deposuna gider; kayıtta yalnız URL durur.

İlgili konular

Hâlâ takıldın mı? Köşedeki asistana sor ya da SSS'ye göz at.