غلاف 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
}
يحتوي الاستيراد على نقطتي بيانات رئيسيتين:
$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 ' )
يحتوي الاستيراد على نقطتي بيانات رئيسيتين:
$import->settings()->setSkipInvalidOrders(true)
$import->newOrder() : Order
و $import->orders() : array
و $import->addOrder($order) : self
مثال للاستخدام أعلاه.
تستخدم الحقول المخصصة غلافًا لكل طلب متعلق بالحقول المخصصة. لإنشاء مثيل جديد، اتصل $api->customFields()
. على هذا الكائن يمكنك إنشاء أي طلب يتم تنفيذه حاليًا. انظر أدناه.
طريقة سريعة لإنشاء طلب باستخدام الحقل المخصص المطلوب
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
فقط. الاستجابة الكاملة من واجهة برمجة التطبيقات باستخدام 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" إذا لم يتم توفيره، فسيتم تحديد كافة الحقول.
القيم المسموح بها: "المعرف"، "الاسم"، "النوع"
قائمة مفاتيح الفرز مفصولة بفواصل من الجانب الأيسر. ألحق "-" بأي مفتاح لتحديد الاتجاه التنازلي، على سبيل المثال. "؟ نوع = نوع،-اسم"
القيم المسموح بها: "المعرف"، "الاسم"، "النوع"
يضبط الصفحة الحالية
يضبط حد النتيجة في استعلام واحد
يسمح بتصفية الحقول المخصصة بشروط تصفية متعددة.
يقوم بتشغيل استعلام بحث باستخدام مرشح الاسم والتحقق من العثور على الاسم المحدد في الحقول المخصصة. إرجاع 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.
حقوق الطبع والنشر (ج) 2016 - 2022 لمارتن كلوسكا والمساهمين