스마트 이메일 API용 API 래퍼입니다.
요구사항
이 패키지에는 PHP 7.4 이상이 필요합니다.
작곡가를 통해 설치
composer require pion/smart-emailing-v3
사용자 이름과 apiKey를 사용하여 Api 인스턴스를 만듭니다.
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는 사용자 정의 필드와 관련된 각 요청에 래퍼를 사용합니다. 새 인스턴스를 생성하려면 $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개로 제한됩니다. 응답은 $response->data()
호출하여 메타 데이터(MetaDataInterface)와 ModelsCustomFieldDefinition
배열을 반환합니다.
ModelsCustomFieldDefinition
배열을 반환합니다.MetaDataInterface
에 정의됨)이 포함된 stdClass
반환합니다. 검색 요청을 생성하고 $page
또는 $limit
만 설정합니다. customfield_options_url
을 사용하는 API의 전체 응답 또는
$ 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=유형,-이름"
허용되는 값: "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 및 기여자