Formlar
`forms.list`, `get`, `create`, `update`, `delete`, `publish`, `pause`, `resume`, `duplicate`, `analytics`, `list_starters`, `get_starter`, `list_submissions`, `get_submission`, `delete_submission`, `delete_submissions`, `approve_submission`, `resend_confirmation` ve `subscribe`.
Her yöntem
from openemail import openemail form = openemail.forms.create({ 'name': 'Newsletter sign-up', 'starter': 'newsletter', 'settings': {'audienceIds': ['aud_4c1b8e2a7d9f05c36b4e8a71']}, 'publish': True,}) print(form['url'], form['subscribeUrl']) saved = openemail.forms.update(form['id'], { 'settings': {'doubleOptIn': True, 'senderAddress': '[email protected]'}, 'expectedUpdatedAt': form['updatedAt'],}) signup = openemail.forms.subscribe(form['id'], { 'email': '[email protected]', 'first_name': 'Ann', 'consent': True,}) for submission in openemail.forms.iterate_submissions(form['id'], status='pending'): if submission['expired']: openemail.forms.resend_confirmation(form['id'], submission['id']) stats = openemail.forms.analytics(form['id'], days=30)starters = openemail.forms.list_starters() openemail.forms.pause(form['id'])openemail.forms.resume(form['id'])copy = openemail.forms.duplicate(form['id'])openemail.forms.delete(copy['id']) print(saved['senderIssue'], signup['outcome'], stats['totals']['conversion'], len(starters))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. approve_submission bir kişi eklediği için ayrıca contacts:write gerektirir. resend_confirmation 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.import_contacts 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; list_all 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.
idstr- Kalıcı tanıtıcı, `frm_` ardından 24 onaltılık karakter.
statusLiteral['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.
urlstr- Yayımlanmış formun bağlantı olarak paylaşılacak barındırılan sayfası.
subscribeUrlstr- 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 | None- Ziyaretçilerin şu anda gördüğü. İlk yayımlamaya kadar `None`.
settingsFormSettings- Kayıtların nereye gittiği ve bir kayıttan sonra ne olacağı: `audienceIds`, `doubleOptIn`, `senderAddress`, onay e-postası, `successAction`, `redirectUrl` ve `notifyAddresses`.
hasUnpublishedChangesbool- Taslak ziyaretçilerin gördüğünden farklı olduğunda `True`. İlk yayımlamadan önce her zaman `False`.
senderIssueLiteral['missing', 'not_sendable', 'not_allowed'] | None- Çift onaylı bir formun onay e-postalarını şu anda neden gönderemediği ya da gönderebiliyorsa `None`.
statsFormStats- Okuma anında sayılan `views`, `submissions`, `added`, `pending` ve `lastSubmittedAt`.
Gönderimler
list_submissions sayfaları en yeniden eskiye döndürür; e-posta adreslerinde aramak için q, pending ya da added için status alır; list_all_submissions ve iterate_submissions 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.
resend_confirmation, gönderimi confirmationSent ile birlikte döndürür. Hiçbir şey gitmediyse False olur: bir adres form başına on dakikada bir ve çalışma alanı genelinde günde beş onay alır; elle eklenen bir gönderim hiç almaz. expired, en son bağlantısının süresi dolmuş bekleyen bir kaydı işaretler.
Referans
forms.list()Tam başvuruforms.list_all()Tam başvuruforms.iterate()Tam başvuruforms.get()Tam başvuruforms.create()Tam başvuruforms.update()Tam başvuruforms.delete()Tam başvuruforms.publish()Tam başvuruforms.pause()Tam başvuruforms.resume()Tam başvuruforms.duplicate()Tam başvuruforms.analytics()Tam başvuruforms.list_starters()Tam başvuruforms.get_starter()Tam başvuruforms.list_submissions()Tam başvuruforms.list_all_submissions()Tam başvuruforms.iterate_submissions()Tam başvuruforms.get_submission()Tam başvuruforms.delete_submission()Tam başvuruforms.delete_submissions()Tam başvuruforms.approve_submission()Tam başvuruforms.resend_confirmation()Tam başvuruforms.subscribe()Tam başvuru