Wrapper API สำหรับ API การส่งอีเมลอัจฉริยะ
ความต้องการ
แพ็คเกจนี้ต้องใช้ PHP 7.4 และสูงกว่า
ติดตั้งผ่านผู้แต่ง
composer require pion/smart-emailing-v3
สร้างอินสแตนซ์ Api ด้วยชื่อผู้ใช้และ apiKey ของคุณ
use SmartEmailing v3 Api ;
. . .
$ api = new Api ( ' username ' , ' api-key ' );
จากนั้นใช้ $api
ด้วยวิธี/ส่วนประกอบที่ต้องการ
// Creates a new instance
$ api -> importRequest ()-> addContact ( new Contact ( ' [email protected] ' ))-> send ();
หรือ
// 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 ();
เมื่อส่งคำขอใด ๆ คุณสามารถตรวจพบข้อผิดพลาดข้อยกเว้น 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
}
การนำเข้ามีจุดข้อมูลหลัก 2 จุด:
$import->settings()->setUpdate(true)
$import->newContact() : Contact
, $import->contacts() : array
และ $import->addContact($contact) : self
ตัวอย่างการใช้งานอยู่ด้านบน
การนำเข้ามีจุดข้อมูลหลัก 3 จุด:
$contact->customFields()
สำหรับการเพิ่มฟิลด์ใหม่$contact->contactLists()
สำหรับการเพิ่มรายชื่อผู้ติดต่อใหม่ดูซอร์สโค้ดสำหรับวิธีการ/คุณสมบัติทั้งหมดที่คุณสามารถใช้ได้
ใช้ผู้ถือข้อมูลที่มีเมธอด create
/ add
/ get
/ isEmpty
/ toArray
/ jsonSerialize
$ field = $ contact -> customFields ()-> create ( 12 , ' test ' )
$ list = $ contact -> contactLists ()-> create ( 12 , ' confirmed ' )
การนำเข้ามีจุดข้อมูลหลัก 2 จุด:
$import->settings()->setSkipInvalidOrders(true)
$import->newOrder() : Order
, $import->orders() : array
และ $import->addOrder($order) : self
ตัวอย่างการใช้งานอยู่ด้านบน
customFields ใช้ wrapper สำหรับแต่ละคำขอที่เกี่ยวข้องกับฟิลด์ที่กำหนดเอง หากต้องการสร้างอินสแตนซ์ใหม่ ให้เรียก $api->customFields()
บนออบเจ็กต์นี้ คุณสามารถสร้างคำขอใดๆ ที่กำลังดำเนินการอยู่ในปัจจุบันได้ ดูด้านล่าง
วิธีที่รวดเร็วในการสร้างคำขอด้วย customField ที่จำเป็น
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 ;
หรือ
$ 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 ;
เอกสาร API
เปิดใช้งานการค้นหาโดยใส่ฟิลด์ที่กำหนดเองพร้อมการสนับสนุนตัวกรอง/การเรียงลำดับ ผลลัพธ์จะถูกจำกัดไว้ที่ 100 ต่อหน้า การตอบสนองส่งคืนข้อมูลเมตา (MetaDataInterface) และอาร์เรย์ของ ModelsCustomFieldDefinition
โดยการเรียก $response->data()
ModelsCustomFieldDefinition
stdClass
พร้อมคุณสมบัติ (กำหนดใน MetaDataInterface
) สร้างคำขอค้นหาและตั้งค่าเฉพาะ $page
หรือ $limit
การตอบสนองแบบเต็มจาก api ด้วย customfield_options_url
หรือ
$ 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()
ส่งคืนการตั้งค่าตัวกรอง - เพิ่มเติมด้านล่าง การใช้พารามิเตอร์นี้ คุณสมบัติ "customfield_options_url" จะถูกแทนที่ด้วย "customfield_options" ที่รวมข้อมูลที่ขยายไว้ ดูตัวอย่างด้านล่างสำหรับข้อมูลเพิ่มเติม โปรดดูจุดสิ้นสุด "/customfield-options"
ค่าที่อนุญาต: "customfield_options"
รายการคุณสมบัติที่คั่นด้วยเครื่องหมายจุลภาคเพื่อเลือก เช่น "?select=id,name" ถ้าไม่ระบุ ฟิลด์ทั้งหมดจะถูกเลือก
ค่าที่อนุญาต: "id", "name", "type"
รายการคีย์การเรียงลำดับที่คั่นด้วยเครื่องหมายจุลภาคจากด้านซ้าย เพิ่ม "-" ไว้ข้างหน้าคีย์ใดๆ เพื่อใช้บอกทิศทางการเรียงลำดับ เช่น "?sort=type,-ชื่อ"
ค่าที่อนุญาต: "id", "name", "type"
ตั้งค่าหน้าปัจจุบัน
กำหนดขีดจำกัดของผลลัพธ์ในแบบสอบถามเดียว
อนุญาตให้กรองฟิลด์ที่กำหนดเองด้วยเงื่อนไขตัวกรองหลายรายการ
เรียกใช้คำค้นหาด้วยตัวกรองชื่อและตรวจสอบว่าพบชื่อที่กำหนดใน customFields หรือไม่ ส่งกลับค่า false
หรือ CustomFieldsCustomField
ใช้ตรรกะการส่ง (พ่น RequestException)
// Can throw RequestException - uses send.
if ( $ customField = $ api -> customFields ()-> getByName ( ' name ' )) {
return $ customField -> id ;
} else {
throw new Exception ( ' Not found! ' , 404 );
}
การใช้งานการเรียก API send/transactional-emails-bulk
: https://app.smartemailing.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 ();
การใช้งานการเรียก API send/custom-emails-bulk
: https://app.smartemailing.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 ();
การใช้งานการเรียก API send/custom-sms-bulk
: https://app.smartemailing.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 ();
ดู UPGRADE.md สำหรับวิธีอัปเกรดเป็นเวอร์ชันที่ใหม่กว่า
ดู CONTRIBUTING.md สำหรับวิธีสนับสนุนการเปลี่ยนแปลง ยินดีต้อนรับทุกการมีส่วนร่วม
smart-emailing-v3 เขียนโดย Martin Kluska และเผยแพร่ภายใต้ใบอนุญาต MIT
ลิขสิทธิ์ (c) 2016 - 2022 Martin Kluska และผู้มีส่วนร่วม