Belgelere geç
Ruby

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

forms.rb
form = client.forms.create(  name: "Newsletter sign-up",  starter: "newsletter",  settings: {audienceIds: ["aud_4c1b8e2a7d9f05c36b4e8a71"]},  publish: true) puts form[:url], form[:subscribeUrl] saved = client.forms.update(  form[:id],  settings: {doubleOptIn: true, senderAddress: "[email protected]"},  expectedUpdatedAt: form[:updatedAt]) signup = client.forms.subscribe(form[:id], email: "[email protected]", first_name: "Ann", consent: true) client.forms.iterate_submissions(form[:id], status: "pending") do |submission|  client.forms.resend_confirmation(form[:id], submission[:id]) if submission[:expired]end stats = client.forms.analytics(form[:id], days: 30)starters = client.forms.list_starters client.forms.pause(form[:id])client.forms.resume(form[:id])copy = client.forms.duplicate(form[:id])client.forms.delete(copy[:id]) puts saved[:senderIssue], signup[:outcome], stats.dig(:totals, :conversion), starters.size

Bir form, taslak bir document ve ziyaretçilerin gördüğü publishedDocument 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 etkili olur; expectedUpdatedAt ise başkasının kaydının üzerine yazacak bir kaydı OpenEmail::ConflictError olarak fırlatılan 409 version_conflict ile reddeder.

Bir formun alanları API'nin camelCase adlarını korur (expectedUpdatedAt:, doubleOptIn) ve anahtar kelime argümanları ya da tek bir Hash olarak geçirilir; filtreler ve seçenekler ise snake_case anahtar kelimelerdir (list_submissions üzerinde status:, analytics üzerinde offset_minutes:). Bir form Symbol anahtarlı bir Hash olarak döner; bu yüzden form[:subscribeUrl] kayıtları kabul eden adresi okur.

Okuma forms:read, değiştirme forms:write gerektirir. approve_submission bir kişi eklediği için contacts:write de gerektirir. resend_confirmation emails:send de gerektirir; formun posta göndermesine yol açan bir çağrı da öyle: doubleOptIn seçeneğini 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. Token bir koda sahip olana kadar delete, step_up_required? değeri true olan bir OpenEmail::PermissionError fırlatır.

subscribe, formun sayfasının yaptığı gibi birini kaydeder ve kimlik bilgisi tutan bir istemciden bile hiçbir kimlik bilgisi göndermez; bu yüzden api_key: yok sayılır. Yanıtlar, formun alan anahtarlarıyla anahtarlanmış anahtar kelime argümanları ya da tek bir Hash olarak verilir. Tek bir ağdan gelen tüm kayıtlar on dakikada 40'lık ortak bir sınırı paylaşır; bu yüzden birçok kişinin kaydını aktaran bir sunucu bu sınıra hızla ulaşır. Zaten tanıdığınız kişileri bunun yerine audiences.import_contacts ile ekleyin. Sınır aşıldığında çağrı OpenEmail::RateLimitError fırlatır. Formun bulunduğu sayfayı oe_source: olarak geçirin, oe_started değerini belirtmeyin ve oe_website değerini boş gönderin ya da hiç göndermeyin.

subscribe çağrısından gelen bir 422, OpenEmail::ValidationError olarak fırlatılan invalid_form_submission hatasıdır; hatanın fields alanı, eksik ya da geçersiz her yanıtı required, email ve option gibi nedenlerle key ve error içeren bir Hash olarak listeler. OpenEmail::FORM_FIELD_ERRORS her nedeni adlandırır. Gem bir sunucuda çalışır. Bir tarayıcı yanıtları formun subscribeUrl adresine kendisi, bir JSON gövdesi olarak ya da bir Accept: application/json başlığıyla gönderir ve herhangi bir kaynaktan JSON yanıtı alır. İkisi de yoksa barındırılan sayfaya bir 303 yönlendirmesi alır.

Yanıt: bir form

list, document ve settings olmadan, en yeniden eskiye formlardan oluşan bir OpenEmail::Page döndürür; list_all ve iterate her sayfayı dolaşır. get, create, update, publish, pause, resume ve duplicate formun tamamını bir Hash olarak döndürür; bu Hash document, publishedDocument, settings, audiences, senderIssue ve senderProblem alanlarını ekler.

idString
Kalıcı tanıtıcı, `frm_` ardından 24 onaltılık karakter.
statusString
İlk yayına kadar `draft`, ardından kayıt kabul ettiği sürece `live`, kabul etmediği sürece `paused`. Bir form asla `draft` durumuna geri dönmez. `OpenEmail::FORM_STATUSES` üçünü de adlandırır.
urlString
Yayımlanmış formun bağlantı olarak paylaşılacak barındırılan sayfası.
subscribeUrlString
Düz bir HTML formunun ya da tarayıcıdaki bir betiğin yanıtları gönderdiği adres.
documentHash
Taslak: sırasıyla `fields`, bunları çevreleyen `copy` metinleri ve `style`.
publishedDocumentHash or nil
Ziyaretçilerin şu anda gördüğü; ilk yayına kadar nil.
settingsHash
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.
senderIssueString or nil
Çift onaylı bir formun onay e-postalarını şu anda neden gönderemediği: `missing`, `not_sendable` ya da `not_allowed`. Gönderebiliyorsa nil'dir. `OpenEmail::FORM_SENDER_ISSUES` üçünü de adlandırır.
statsHash
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. OpenEmail::FORM_SUBMISSION_STATUSES iki durumu adlandırır. Her başvuru, yanıtları etiketleri dâhil gönderildikleri hâliyle tutan bir Hash'tir; böylece form değiştikten sonra da doğru okunur.

resend_confirmation başvuruyu confirmationSent ile döndürür. Hiçbir şey gitmediyse bu değer false olur: bir adres form başına on dakikada bir ve çalışma alanı genelinde günde beş onay alır, eklenmiş bir başvuru ise hiç onay almaz. expired, en son bağlantısının süresi dolmuş bekleyen bir kaydı işaretler.