brille24 / mailchimp
PHP7.2中Mailchimp API v3.0的实现
0.1.6
2019-04-15 12:06 UTC
Requires
- ext-json: *
- guzzlehttp/guzzle: ^6.3
- ytake/valueobjects: ^2.0
Requires (Dev)
- phpspec/phpspec: ^5.1
- phpstan/phpstan: ^0.11.4
README
Brille24 Mailchimp 库
这个库是一个简单的包,旨在消费Mailchimp API v3.0。
当前实现的功能
- 读取、创建和更新Mailchimp列表
- 读取、创建和更新Mailchimp列表成员
测试
composer install php vendor/bin/phpspec run php vendor/bin/phpstan analyse src/ --level max --configuration phpstan.neon
示例
// Getting all lists $listRequest = ListRequest::fromMethod(RequestMethod::byName('GET')); // Getting a specific list $listRequest = ListRequest::fromMethodAndIdentifier(RequestMethod::byName('GET'), "your_list_id"); // Getting all members from a list. $memberRequest = MemberRequest::fromListAndMethod($listRequest, RequestMethod::byName('GET')); // Getting a specific member of a list. $memberRequest = MemberRequest::fromListMethodAndEmail( $listRequest, RequestMethod::byName('GET'), 'some@email_address.tld' ); /** * All other requests work in a similar, wrapped style **/ // Updating or creating a new member in a list. // 1. Make a list and member request. // 2. Add body parameters. $bodyParameters = new MemberData(); $bodyParameters->setEmailAddress("some@email_address.tld"); $bodyParameters->setStatus(MemberStatus::byName('PENDING')); $bodyParameters->setLanguage(MemberLanguage::byName('English')); // ... there can me more fields in your Mailchimp lists, $bodyParameters->setMergeFields(['FNAME' => 'Some', 'LNAME' => 'Dude']); $memberRequest->setBodyParameters($bodyParameters); // Alternatively or additionally, add query parameters to your requests for filtering response data. /** @var $queryParameters QueryParameters*/ $queryParameters = QueryParameters::fromNative(['fields' => 'email_address', 'count' => 10]); $memberRequest->setQueryParameters($queryParameters); // Execute Request $credentials = new Credentials('your_api_key_here'); // This uses the guzzle HTTP client library. $mailchimp = new Mailchimp(new Client(), $credentials); try { $response = $mailchimp->executeRequest($memberRequest); echo (string) $response->getBody(); } catch (\Throwable $throwable) { // This throws every exception that guzzle will throw. }