Pembungkus API untuk API email pintar.
Persyaratan
Paket ini memerlukan PHP 7.4 dan lebih tinggi.
Instal melalui komposer
composer require pion/smart-emailing-v3
Buat instance Api dengan nama pengguna dan apiKey Anda.
use SmartEmailing v3 Api ;
. . .
$ api = new Api ( ' username ' , ' api-key ' );
kemudian gunakan $api
dengan metode/komponen yang diinginkan.
// Creates a new instance
$ api -> importRequest ()-> addContact ( new Contact ( ' [email protected] ' ))-> send ();
atau
// Creates a new instance
$ import = $ api -> importRequest ();
$ contact = new Contact ( ' [email protected] ' );
$ contact -> setName ( ' Martin ' )-> setNameDay ( ' 2017-12-11 11:11:11 ' );
$ import -> addContact ( $ contact );
// Create new contact that will be inserted in the contact list
$ contact2 = $ import -> newContact ( ' [email protected] ' );
$ contact2 -> setName ( ' Test ' );
// Create new contact that will be inserted in the contact list
$ import -> newContact ( ' [email protected] ' )-> setName ( ' Test ' );
$ import -> send ();
Saat mengirim permintaan apa pun, Anda dapat menangkap pengecualian kesalahan RequestException
.
use SmartEmailing v3 Exceptions RequestException ;
try {
$ api -> ping ();
} catch ( RequestException $ exception ) {
$ exception -> response (); // to get the real response, will hold status and message (also data if provided)
$ exception -> request (); // Can be null if the request was 200/201 but API returned error status text
}
Impor menyimpan 2 titik data utama:
$import->settings()->setUpdate(true)
$import->newContact() : Contact
, $import->contacts() : array
dan $import->addContact($contact) : self
Contoh penggunaannya ada di atas.
Impor menyimpan 3 titik data utama:
$contact->customFields()
untuk menambahkan kolom baru$contact->contactLists()
untuk menambahkan daftar kontak baruLihat kode sumber untuk semua metode/properti yang dapat Anda gunakan
Menggunakan pemegang data dengan metode create
/ add
/ get
/ isEmpty
/ toArray
/ jsonSerialize
.
$ field = $ contact -> customFields ()-> create ( 12 , ' test ' )
$ list = $ contact -> contactLists ()-> create ( 12 , ' confirmed ' )
Impor menyimpan 2 titik data utama:
$import->settings()->setSkipInvalidOrders(true)
$import->newOrder() : Order
, $import->orders() : array
dan $import->addOrder($order) : self
Contoh penggunaannya ada di atas.
customFields menggunakan pembungkus untuk setiap permintaan yang terkait dengan bidang khusus. Untuk membuat panggilan instance baru $api->customFields()
. Pada objek ini Anda dapat membuat permintaan apa pun yang sedang diterapkan. Lihat di bawah.
Cara cepat yang akan membuat permintaan dengan customField yang diperlukan
use SmartEmailing v3 Models CustomFieldDefinition ;
. . .
// Create the new customField and send the request now.
$ customField = new CustomFieldDefinition ( ' test ' , CustomFieldDefinition:: TEXT );
$ data = $ api -> customFields ()-> create ( $ customField );
// Get the customField in data
$ customFieldId = $ data -> id ;
atau
$ request = $ api -> customFields ()-> createRequest (); // You can pass the customField object
// Setup customField
$ customField = new CustomField ();
$ request -> setCustomField ( $ customField );
// Setup data
$ customField -> setType (CustomField:: RADIO )-> setName ( ' test ' );
// Send the request
$ response = $ request -> send ();
$ data = $ response -> data ();
$ customFieldId = $ data -> id ;
DOKUMEN API
Mengaktifkan pencarian dengan memasukkan bidang khusus dengan dukungan filter/sortir. Hasil dibatasi 100 per halaman. Responsnya mengembalikan meta data (MetaDataInterface) dan array ModelsCustomFieldDefinition
dengan memanggil $response->data()
.
ModelsCustomFieldDefinition
stdClass
dengan properti (didefinisikan dalam MetaDataInterface
) Membuat permintaan pencarian dan hanya mengatur $page
atau $limit
. Respons lengkap dari api dengan customfield_options_url
atau
$ data = $ api -> customFields ()-> list ();
/** @var SmartEmailingv3ModelsCustomFieldDefinition $customField */
foreach ( $ data as $ customField ) {
echo $ customField -> id ;
echo $ customField -> name ;
echo $ customField -> type ;
}
$ request = $ api -> customFields ()-> searchRequest ( 1 );
// Search by name
$ request -> filter ()-> byName ( ' test ' );
$ request -> sortBy ( ' name ' );
// Send the request
$ response = $ request -> send ();
$ data = $ response -> data ();
filter()
mengembalikan pengaturan Filter - selengkapnya di bawah Dengan menggunakan parameter ini, properti "customfield_options_url" akan diganti dengan "customfield_options" yang berisi data yang diperluas. Lihat contoh di bawah Untuk informasi lebih lanjut, lihat titik akhir "/customfield-options".
Nilai yang diizinkan: "customfield_options"
Daftar properti yang dipisahkan koma untuk dipilih. misalnya. "?select=id,name" Jika tidak tersedia, semua kolom akan dipilih.
Nilai yang diperbolehkan: "id", "nama", "tipe"
Daftar kunci pengurutan yang dipisahkan koma dari sisi kiri. Tambahkan "-" ke tombol apa saja untuk arah desc, mis. "?sort=ketik,-nama"
Nilai yang diperbolehkan: "id", "nama", "tipe"
Mengatur halaman saat ini
Menetapkan batas hasil dalam satu kueri
Memungkinkan pemfilteran bidang khusus dengan beberapa kondisi filter.
Menjalankan kueri penelusuran dengan filter nama dan memeriksa apakah nama yang diberikan ditemukan di customFields. Mengembalikan false
atau CustomFieldsCustomField
. Menggunakan logika kirim (melemparkan RequestException).
// Can throw RequestException - uses send.
if ( $ customField = $ api -> customFields ()-> getByName ( ' name ' )) {
return $ customField -> id ;
} else {
throw new Exception ( ' Not found! ' , 404 );
}
Implementasi panggilan API send/transactional-emails-bulk
: https://app.smartmailing.cz/docs/api/v3/index.html#api-Custom_campaigns-Send_transactional_emails
$ transactionEmail = $ api -> transactionalEmailsRequest ();
$ credentials = new SenderCredentials ();
$ credentials -> setFrom ( ' [email protected] ' );
$ credentials -> setReplyTo ( ' [email protected] ' );
$ credentials -> setSenderName ( ' Jean-Luc Picard ' );
$ recipient = new Recipient ();
$ recipient -> setEmailAddress ( ' [email protected] ' );
$ replace1 = new Replace ();
$ replace1 -> setKey ( ' key1 ' );
$ replace1 -> setContent ( ' content1 ' );
$ replace2 = new Replace ();
$ replace2 -> setKey ( ' key2 ' );
$ replace2 -> setContent ( ' content2 ' );
$ templateVariable = new TemplateVariable ();
$ templateVariable -> setCustomData ([
' foo ' => ' bar ' ,
' products ' => [
[ ' name ' => ' prod1 ' , ' desc ' => ' desc1 ' ],
[ ' name ' => ' prod1 ' , ' desc ' => ' desc2 ' ]
]
]);
$ attachment1 = new Attachment ();
$ attachment1 -> setContentType ( ' image/png ' );
$ attachment1 -> setFileName ( ' picture.png ' );
$ attachment1 -> setDataBase64 ( ' data1 ' );
$ attachment2 = new Attachment ();
$ attachment2 -> setContentType ( ' image/gif ' );
$ attachment2 -> setFileName ( ' sun.gif ' );
$ attachment2 -> setDataBase64 ( ' data2 ' );
$ task = new Task ();
$ task -> setRecipient ( $ recipient );
$ task -> addReplace ( $ replace1 );
$ task -> addReplace ( $ replace2 );
$ task -> setTemplateVariables ( $ templateVariable );
$ task -> addAttachment ( $ attachment1 );
$ task -> addAttachment ( $ attachment2 );
$ messageContents = new MessageContents ();
$ messageContents -> setTextBody ( ' text_body ' );
$ messageContents -> setHtmlBody ( ' html_body ' );
$ messageContents -> setSubject ( ' subject ' );
$ transactionEmail -> setTag ( ' tag_tag ' );
$ transactionEmail -> setEmailId ( 5 );
$ transactionEmail -> setSenderCredentials ( $ credentials );
$ transactionEmail -> addTask ( $ task );
$ transactionEmail -> setMessageContents ( $ messageContents );
$ transactionEmail -> send ();
Implementasi panggilan API send/custom-emails-bulk
: https://app.smartmailing.cz/docs/api/v3/index.html#api-Custom_campaigns-Send_bulk_custom_emails
$ transactionEmail = $ api -> customEmailsBulkRequest ();
$ credentials = new SenderCredentials ();
$ credentials -> setFrom ( ' [email protected] ' );
$ credentials -> setReplyTo ( ' [email protected] ' );
$ credentials -> setSenderName ( ' Jean-Luc Picard ' );
$ recipient = new Recipient ();
$ recipient -> setEmailAddress ( ' [email protected] ' );
$ replace1 = new Replace ();
$ replace1 -> setKey ( ' key1 ' );
$ replace1 -> setContent ( ' content1 ' );
$ replace2 = new Replace ();
$ replace2 -> setKey ( ' key2 ' );
$ replace2 -> setContent ( ' content2 ' );
$ templateVariable = new TemplateVariable ();
$ templateVariable -> setCustomData ([
' foo ' => ' bar ' ,
' products ' => [
[ ' name ' => ' prod1 ' , ' desc ' => ' desc1 ' ],
[ ' name ' => ' prod1 ' , ' desc ' => ' desc2 ' ]
]
]);
$ task = new Task ();
$ task -> setRecipient ( $ recipient );
$ task -> addReplace ( $ replace1 );
$ task -> addReplace ( $ replace2 );
$ task -> setTemplateVariables ( $ templateVariable );
$ transactionEmail -> setTag ( ' tag_tag ' );
$ transactionEmail -> setEmailId ( 5 );
$ transactionEmail -> setSenderCredentials ( $ credentials );
$ transactionEmail -> addTask ( $ task );
$ transactionEmail -> send ();
Penerapan panggilan API send/custom-sms-bulk
: https://app.smartmailing.cz/docs/api/v3/index.html#api-Custom_campaigns-Send_bulk_custom_SMS
$ bulkCustomSms = $ api -> customSmsBulkRequest ();
$ recipient = new Recipient ();
$ recipient -> setEmailAddress ( ' [email protected] ' );
$ recipient -> setCellphone ( ' +420777888777 ' );
$ replace1 = new Replace ();
$ replace1 -> setKey ( ' key1 ' );
$ replace1 -> setContent ( ' content1 ' );
$ replace2 = new Replace ();
$ replace2 -> setKey ( ' key2 ' );
$ replace2 -> setContent ( ' content2 ' );
$ task = new Task ();
$ task -> setRecipient ( $ recipient );
$ task -> addReplace ( $ replace1 );
$ task -> addReplace ( $ replace2 );
$ bulkCustomSms -> setTag ( ' tag_tag ' );
$ bulkCustomSms -> setSmsId ( 5 );
$ bulkCustomSms -> addTask ( $ task );
$ bulkCustomSms -> send ();
Lihat UPGRADE.md untuk mengetahui cara meningkatkan ke versi yang lebih baru.
Lihat CONTRIBUTING.md untuk mengetahui cara berkontribusi terhadap perubahan. Semua kontribusi dipersilakan.
smart-email-v3 ditulis oleh Martin Kluska dan dirilis di bawah Lisensi MIT.
Hak Cipta (c) 2016 - 2022 Martin Kluska dan kontributor