Envoltorio de API para API de correo electrónico inteligente.
Requisitos
Este paquete requiere PHP 7.4 y superior.
Instalar a través del compositor
composer require pion/smart-emailing-v3
Cree una instancia de Api con su nombre de usuario y apiKey.
use SmartEmailing v3 Api ;
. . .
$ api = new Api ( ' username ' , ' api-key ' );
luego use $api
con el método/componente deseado.
// Creates a new instance
$ api -> importRequest ()-> addContact ( new Contact ( ' [email protected] ' ))-> send ();
o
// 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 ();
Al enviar cualquier solicitud, puede detectar la excepción de error 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
}
La importación contiene 2 puntos de datos principales:
$import->settings()->setUpdate(true)
$import->newContact() : Contact
, $import->contacts() : array
y $import->addContact($contact) : self
Un ejemplo de uso está arriba.
La importación contiene 3 puntos de datos principales:
$contact->customFields()
para agregar nuevos campos$contact->contactLists()
para agregar una nueva lista de contactosConsulte el código fuente para conocer todos los métodos/propiedades que puede utilizar
Utiliza un contenedor de datos con métodos create
/ add
/ get
/ isEmpty
/ toArray
/ jsonSerialize
.
$ field = $ contact -> customFields ()-> create ( 12 , ' test ' )
$ list = $ contact -> contactLists ()-> create ( 12 , ' confirmed ' )
La importación contiene 2 puntos de datos principales:
$import->settings()->setSkipInvalidOrders(true)
$import->newOrder() : Order
, $import->orders() : array
y $import->addOrder($order) : self
Un ejemplo de uso está arriba.
CustomFields utiliza un contenedor para cada solicitud relacionada con campos personalizados. Para crear una nueva instancia, llame $api->customFields()
. En este objeto puede crear cualquier solicitud que esté implementada actualmente. Vea abajo.
Manera rápida que creará una solicitud con el campo personalizado requerido
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 ;
o
$ 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 ;
DOCUMENTOS API
Permite la búsqueda en campos personalizados con soporte de filtro/clasificación. Los resultados están limitados a 100 por página. La respuesta devuelve metadatos (MetaDataInterface) y una matriz de ModelsCustomFieldDefinition
llamando $response->data()
.
ModelsCustomFieldDefinition
stdClass
con propiedades (definidas en MetaDataInterface
) Crea una solicitud de búsqueda y configura solo $page
o $limit
. La respuesta completa de la API con customfield_options_url
o
$ 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()
devuelve una configuración de filtros; más información a continuación Al utilizar este parámetro, la propiedad "customfield_options_url" se reemplazará por "customfield_options" que contiene datos expandidos. Vea los ejemplos a continuación. Para obtener más información, consulte el punto final "/customfield-options".
Valores permitidos: "customfield_options"
Lista separada por comas de propiedades para seleccionar. p.ej. "?select=id,name" Si no se proporciona, se seleccionan todos los campos.
Valores permitidos: "id", "nombre", "tipo"
Lista separada por comas de claves de clasificación del lado izquierdo. Anteponga "-" a cualquier tecla para la dirección de descripción, por ejemplo. "?ordenar=tipo,-nombre"
Valores permitidos: "id", "nombre", "tipo"
Establece la página actual
Establece el límite de resultado en una sola consulta.
Permite filtrar campos personalizados con múltiples condiciones de filtrado.
Ejecuta una consulta de búsqueda con filtro de nombre y comprueba si el nombre de pila se encuentra en customFields. Devuelve false
o CustomFieldsCustomField
. Utiliza lógica de envío (lanza RequestException).
// Can throw RequestException - uses send.
if ( $ customField = $ api -> customFields ()-> getByName ( ' name ' )) {
return $ customField -> id ;
} else {
throw new Exception ( ' Not found! ' , 404 );
}
La implementación de la llamada 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 ();
La implementación de la llamada 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 ();
La implementación de la llamada 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 ();
Consulte UPGRADE.md para saber cómo actualizar a versiones más recientes.
Consulte CONTRIBUTING.md para saber cómo contribuir con cambios. Todas las contribuciones son bienvenidas.
smart-emailing-v3 fue escrito por Martin Kluska y se publica bajo la licencia MIT.
Copyright (c) 2016 - 2022 Martin Kluska y colaboradores