Bu sayfada

API anahtarları ve SDK ile kendi arayüzünüzü geliştirme

API anahtarı oluşturun, @teachfluence/sdk ile katalog, sepet ve ödeme akışını okuyun, siteyi @teachfluence/cli ile kendi adresinize veya kök adrese dağıtın.

Kendi sitenizi yazıp Teachfluence verinizle çalıştırabilirsiniz: katalog, sepet ve ödeme akışı @teachfluence/sdk üzerinden gelir, siteyi @teachfluence/cli ile yayına alırsınız. Bu sayfa anahtar oluşturmayı, SDK'nın temel akışını ve dağıtımı anlatır.

1. API anahtarı oluşturun

Ayarlar → Entegrasyonlar → Geliştirici → API anahtarları

  1. Anahtar oluştur'a basın.
  2. Anahtara bir Ad verin (örneğin Üretim storefront) ve Türü seçin.
  3. Yayınlanabilir (tf_pk_) tarayıcıya gider. Ziyaretçinin zaten yapabileceğinden fazlasına izin vermez, bu yüzden istemci paketinize koyabilirsiniz.
  4. Gizli (tf_sk_) yalnızca sunucu tarafıdır. Organizasyon genelinde okuma yetkisi verir ve site dağıtımı yapabilir; yani sitenizin ne yayınladığını değiştirebilir.

Artık kullanılmayan bir anahtarı İptal et ile kapatın. İptal anında geçerli olur: o anahtarı kullanan siteler ve betikler erişimini kaybeder.

2. SDK'yı kurun

npm install @teachfluence/sdk
import { TeachfluenceClient } from '@teachfluence/sdk';

const client = new TeachfluenceClient({
  organizationSlug: 'kurumunuz',
  apiKey: process.env.TEACHFLUENCE_PUBLISHABLE_KEY,
});

organizationSlug zorunludur ve açıkça verilir: derleme betiğiniz hiçbir alan adı üzerinde çalışmıyor olabilir. apiKey alanına yalnızca yayınlanabilir anahtar koyun; SDK bir tf_sk_ anahtarı tarayıcıda fark ederse hata verir.

Katalogu okumak:

const { organization } = await client.catalog.list({ first: 20 });
const { course } = await client.catalog.course({ slug: 'react-101' });

client.catalog ayrıca digitalProduct, liveEvent, subscriptionProducts ve contentBlog (yardım merkezi ve blog sayfalarınız) ad alanlarını taşır.

3. Sepet ve ödeme

const term = course?.academicTerms[0];

if (term?.viewerCanOrder) {
  const { addCartOrderable } = await client.cart.add({
    cartId: localStorage.getItem('cartId'),
    orderableId: term.id,
  });
}

Sepet, giriş yapmamış ziyaretçi için de çalışır. Dönen addCartOrderable.cart.id değerini saklayın; saklamazsanız her istek yeni bir sepet açar.

Siparişi oluşturup alıcıyı ödeme sayfasına gönderirsiniz:

const { createOrder } = await client.checkout.createOrder({ cartId });

window.location.href = client.checkout.paymentUrl(createOrder.order.slug);

Alıcının hesap açması gerekmez. Ödeme, Teachfluence'ın barındırdığı sayfada tamamlanır: kart bilgisi sizin kodunuzdan geçmez, fatura ve vergi kuralları Teachfluence tarafında kalır.

Oturum açma için client.session, öğrencinin kendi kayıtlarını, siparişlerini ve sertifikalarını okumak için client.me ad alanına bakın. Hata yönetimi bu ad alanlarında değil: iş kuralı kaynaklı ret ("kupon süresi dolmuş", "kontenjan kalmamış") TeachfluenceUserError olarak fırlatılır, isUserError ile ayırıp forField ile ilgili form alanına yazarsınız.

4. Sitenizi yayına alın

Siteyi kendi bilgisayarınızda veya sürekli entegrasyon ortamınızda derleyin, sonra dağıtın:

export TEACHFLUENCE_SECRET_KEY=tf_sk_...
npx @teachfluence/cli deploy ./dist --org kurumunuz --route /egitimler

Gizli anahtar ortam değişkeniyle verilir. Bayrak olarak yazılsaydı kabuk geçmişinize ve süreç listesine düşerdi.

BayrakNe yapar
--org <slug>Hangi organizasyona dağıtılacağı. Zorunlu.
--route <yol>Sitenin sunulacağı yol. Vermezseniz paket yüklenir ama hiçbir trafiğe cevap vermez.
--site--route / ile birlikte: sitenizin tamamını kök adresten sunar. --take-over-site ister.
--take-over-siteKök adresi tümüyle almayı onaylar. --force'tan ayrıdır.
--label <sha>Dağıtımı bir kaynak sürümüyle etiketler. İsteğe bağlı.
--forceMevcut sayfalarınızı gölgeleyen bir yolu yine de yayınlar.
--allow-project-rootÇıktı klasörü yerine proje kökünü yayınlamak istediğinizde.

Mevcut sayfalarınızı gölgeleyecek bir yol talep ederseniz işlem reddedilir ve nelerin gizleneceği listelenir. Bilerek yapıyorsanız --force ekleyin.

Kök adrese dağıtım

--route / kabul edilir, iki farklı kapsamda:

  • Yalnızca --route / verirseniz site tek bir URL'i alır: index.html dosyanız / adresinde sunulur, /assets/app.js gibi diğer her adres platforma düşer. Tek sayfalık bir site için yeterlidir.
  • --site --take-over-site eklerseniz siteniz kökten bütün olarak yayınlanır: platformun sahip olmadığı her adres (/hakkimizda, /blog/merhaba dahil) sizin dosyanıza gider.
npx @teachfluence/cli deploy ./dist --org kurumunuz --route / --site --take-over-site

5. Arama motorlarını unutmayın

Verisini tarayıcıda çeken bir site, derleme sırasında önceden oluşturulmazsa arama motorlarına boş görünür. Teachfluence'ın sayfa oluşturucusu bu işi sizin için yapar; kendi arayüzünüze geçtiğinizde sorumluluk size geçer. Katalog sayfalarınızı derleme zamanında oluşturun.

Sınırlar

  • Ödeme formu sizin sitenizde çalışmaz. Alıcıyı satın alma düğmesine kadar getirirsiniz; ödeme adımını Teachfluence'ın barındırdığı sayfa tamamlar.
  • Serbest sorgu gönderemezsiniz. SDK yalnızca yayınlanmış işlemleri çağırır. İhtiyacınız olan bir işlem açık değilse destek ekibiyle iletişime geçin.
  • Sınav işlemleri henüz yayınlanmadı, ödev dosyası SDK'dan yüklenemez. Öğrenciyi bu iki akış için platformun kendi sayfasına yönlendirin.

İlgili