Formlar
`forms.list`, `get`, `create`, `update`, `delete`, `publish`, `pause`, `resume`, `duplicate`, `analytics`, `listStarters`, `getStarter`, `listSubmissions`, `getSubmission`, `deleteSubmission`, `deleteSubmissions`, `approveSubmission`, `resendConfirmation` ve `subscribe`.
Her yöntem
const form = await openemail.forms.create({ name: 'Newsletter sign-up', starter: 'newsletter', settings: { audienceIds: ['aud_4c1b8e2a7d9f05c36b4e8a71'] }, publish: true,}) console.log(form.url, form.subscribeUrl) const saved = await openemail.forms.update(form.id, { settings: { doubleOptIn: true, senderAddress: '[email protected]' }, expectedUpdatedAt: form.updatedAt,}) const signup = await openemail.forms.subscribe(form.id, { email: '[email protected]', first_name: 'Ann', consent: true,}) for await (const submission of openemail.forms.iterateSubmissions(form.id, { status: 'pending' })) { if (submission.expired) await openemail.forms.resendConfirmation(form.id, submission.id)} const stats = await openemail.forms.analytics(form.id, { days: 30 })const starters = await openemail.forms.listStarters() await openemail.forms.pause(form.id)await openemail.forms.resume(form.id)const copy = await openemail.forms.duplicate(form.id)await openemail.forms.delete(copy.id) console.log(saved.senderIssue, signup.outcome, stats.totals.conversion, starters.length)Bir form, taslak bir document ile ziyaretçilerin gördüğü publishedDocument değerini tutar. update taslağı ve ayarları değiştirir, publish ise taslağı yayına alır. Ayarlar, form yayımlanmış olsun ya da olmasın hemen geçerli olur; expectedUpdatedAt ise başka birinin kaydettiklerinin üzerine yazacak bir kaydetme işlemini 409 version_conflict ile reddeder.
Okumak forms:read, değiştirmek forms:write gerektirir. approveSubmission bir kişi eklediği için ayrıca contacts:write gerektirir. resendConfirmation ayrıca emails:send gerektirir; formun posta göndermesine yol açan bir çağrı da öyle: doubleOptIn değerini açmak, senderAddress değerini ya da onay e-postasını ayarlamak veya çift onaylı bir formu yayımlamak ya da sürdürmek. delete bir OAuth erişim token'ından doğrulama kodu ister, bir API anahtarından ise asla istemez.
subscribe, birini formun sayfasının yaptığı gibi kaydeder ve kimlik bilgisi taşıyan bir istemciden çağrılsa bile hiçbir kimlik bilgisi göndermez. Tek bir ağdan gelen tüm kayıtlar on dakikada 40 kayıtlık aynı sınırı paylaşır; bu yüzden birçok kişi adına kayıt ileten bir sunucu bu sınıra çabucak ulaşır: zaten tanıdığınız kişileri bunun yerine audiences.importContacts ile ekleyin. Formun bulunduğu sayfayı oe_source olarak geçirin, oe_started değerini dışarıda bırakın ve oe_website değerini boş gönderin ya da hiç göndermeyin.
subscribe çağrısından gelen bir 422, invalid_form_submission hatasıdır; hatanın fields değeri eksik ya da geçersiz her yanıtı required, email ve option gibi nedenlerle birlikte { key, error } olarak listeler. İstemci sunucular içindir. Tarayıcıda yanıtları fetch ile, bir JSON gövdesi olarak ya da bir Accept: application/json başlığıyla formun subscribeUrl adresine gönderin; bu adres her kaynaktan gelen isteğe JSON ile yanıt verir. İkisi de olmadan barındırılan sayfaya bir 303 yönlendirmesiyle yanıt verir.
Yanıt: FormDetailResource
list, en yeniden eskiye, document ve settings olmadan tek bir FormResource sayfası döndürür; listAll ve iterate tüm sayfaları dolaşır. get, create, update, publish, pause, resume ve duplicate ise document, publishedDocument, settings, audiences, senderIssue ve senderProblem değerlerini ekleyen bir FormDetailResource döndürür.
idstring- Kalıcı tanıtıcı, `frm_` ardından 24 onaltılık karakter.
status'draft' | 'live' | 'paused'- İlk yayımlamaya kadar `draft`, ardından kayıt aldığı sürece `live`, almadığı sürece `paused`. Bir form asla `draft` durumuna geri dönmez.
urlstring- Yayımlanmış formun bağlantı olarak paylaşılacak barındırılan sayfası.
subscribeUrlstring- Düz bir HTML formunun ya da `fetch` çağrısının yanıtları gönderdiği adres.
documentFormDocument- Taslak: sırasıyla `fields`, bunları çevreleyen `copy` metinleri ve `style`.
publishedDocumentFormDocument | null- Ziyaretçilerin şu anda gördüğü. İlk yayımlamaya kadar null.
settingsFormSettings- Kayıtların nereye gittiği ve bir kayıttan sonra ne olacağı: `audienceIds`, `doubleOptIn`, `senderAddress`, onay e-postası, `successAction`, `redirectUrl` ve `notifyAddresses`.
hasUnpublishedChangesboolean- Taslak ziyaretçilerin gördüğünden farklı olduğunda true. İlk yayımlamadan önce her zaman false.
senderIssue'missing' | 'not_sendable' | 'not_allowed' | null- Çift onaylı bir formun onay e-postalarını şu anda neden gönderemediği ya da gönderebiliyorsa null.
statsFormStats- Okuma anında sayılan `views`, `submissions`, `added`, `pending` ve `lastSubmittedAt`.
Gönderimler
listSubmissions sayfaları en yeniden eskiye döndürür; e-posta adreslerinde aramak için q, pending ya da added için status alır; listAllSubmissions ve iterateSubmissions ise tüm sayfaları dolaşır. Her FormSubmissionResource, yanıtları etiketleri dâhil gönderildikleri hâliyle tutar; böylece form değiştikten sonra da doğru okunur.
resendConfirmation, confirmationSent değeriyle birlikte gönderimi döndürür. Hiçbir şey gönderilmediğinde bu değer false olur: bir adres form başına on dakikada bir onay ve çalışma alanı genelinde günde beş onay alır, eklenmiş bir gönderim ise hiç onay almaz. expired, en son bağlantısının süresi dolmuş, bekleyen bir kaydı işaretler.