bonsi / laravel-newsletter-getresponse
管理Laravel 5中的GetResponse新闻通讯
Requires
- php: ^5.5|^7.0
- drewm/mailchimp-api: ^2.1
- illuminate/support: ^5.1
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ^4.8
README
注意:工作正在进行中!
该包是优秀的 [] "Beter goed gejat dan slecht verzonnen" :)
此包提供了一种轻松集成GetResponse与Laravel 5的方法。幕后使用了GetResponse API的v3。以下是一些你可以使用此包完成的示例
Newsletter::subscribe('rincewind@discworld.com'); Newsletter::unsubscribe('the.luggage@discworld.com'); //Merge variables can be passed as the second argument Newsletter::subscribe('sam.vines@discworld.com', ['firstName'=>'Sam', 'lastName'=>'Vines']); //Subscribe someone to a specific list by using the third argument: Newsletter::subscribe('nanny.ogg@discworld.com', ['firstName'=>'Nanny', 'lastName'=>'Ogg'], 'Name of your list'); //Get some member info, returns an array described in the official docs Newsletter::getMember('lord.vetinari@discworld.com'); //Returns a boolean Newsletter::hasMember('greebo@discworld.com'); //If you want to do something else, you can get an instance of the underlying API: Newsletter::getApi();
安装
您可以通过Composer使用以下命令安装此包:
composer require bonsi/laravel-newsletter-getresponse
您还必须安装此服务提供者。
// config/app.php 'providers' => [ ... Bonsi\GetResponse\Newsletter\NewsletterServiceProvider::class, ... ];
如果您想使用外观,也必须安装它。
// config/app.php 'aliases' => [ .. 'Newsletter' => Bonsi\GetResponse\Newsletter\NewsletterFacade::class, ];
要发布配置文件到app/config/laravel-newsletter-getresponse.php
,请运行
php artisan vendor:publish --provider="Bonsi\GetResponse\Newsletter\NewsletterServiceProvider"
这将发布一个名为laravel-newsletter-getresponse.php
的文件到您的配置目录,内容如下
return [ /* * The api key of a GetResponse account. You can find yours here: * https://us10.admin.mailchimp.com/account/api-key-popup/ */ 'apiKey' => env('GETRESPONSE_APIKEY'), /* * When not specifying a listname in the various methods, * this list name will be used. */ 'defaultListName' => 'subscribers', /* * Here you can define properties of the lists you want to * send campaigns. */ 'lists' => [ /* * This key is used to identify this list. It can be used * in the various methods provided by this package. * * You can set it to any string you want and you can add * as many lists as you want. */ 'subscribers' => [ /* * A getresponse campaign id. Check the mailchimp docs if you don't know * how to get this value: * http://kb.mailchimp.com/lists/managing-subscribers/find-your-list-id */ 'id' => env('GETRESPONSE_DEFAULT_LIST_ID'), ], ], ];
用法
在安装了包并在配置文件中填写了值之后,使用此包将会变得非常简单。以下所有示例都使用了外观。不要忘记在文件顶部导入它。
use Newsletter;
订阅和取消订阅
订阅电子邮件地址可以这样完成
use Newsletter; Newsletter::subscribe('rincewind@discworld.com');
让我们取消某人的订阅
Newsletter::unsubscribe('the.luggage@discworld.com');
您可以将一些合并变量作为第二个参数传递
Newsletter::subscribe('rincewind@discworld.com', ['firstName'=>'Rince', 'lastName'=>'Wind']);
请注意,在撰写本文时,MailChimp中默认的合并变量名为FNAME
和LNAME
。在我们的示例中,我们使用firstName
和lastName
以提高可读性。
您可以使用第三个参数订阅某人到特定的列表
Newsletter::subscribe('rincewind@discworld.com', ['firstName'=>'Rince', 'lastName'=>'Wind'], 'subscribers');
第三个参数是您在配置文件中配置的列表的名称。
您也可以从特定的列表中取消某人的订阅
Newsletter::unsubscribe('rincewind@discworld.com', 'subscribers');
获取订阅者信息
您可以使用getMember
函数获取订阅者的信息
Newsletter::getMember('lord.vetinari@discworld.com');
这将返回一个包含订阅者信息的数组。如果没有订阅者使用该电子邮件地址,则该函数将返回false
还有一个方便的方法来检查是否有人订阅
Newsletter::hasMember('nanny.ogg@discworld.com'); //returns a bool
创建活动
这就是创建活动的方法
/** * @param string $fromName * @param string $replyTo * @param string $subject * @param string $html * @param string $listName * @param array $options * @param array $contentOptions * * @return array|bool * * @throws \Bonsi\GetResponse\Newsletter\Exceptions\InvalidNewsletterList */ public function createCampaign($fromName, $replyTo, $subject, $html = '', $listName = '', $options = [], $contentOptions = [])
请注意,活动将被创建,但不会发送任何邮件。
处理错误
如果出现问题,您可以使用以下方法获取最后一个错误:
Newsletter::getLastError();
如果您只想确保最后一个操作是否成功,可以这样做:
Newsletter::lastActionSucceeded();
需要其他功能?
如果您需要更多功能,可以通过以下方式获取底层GetResponse Api的实例:
$api = Newsletter::getApi();
测试
使用以下命令运行测试:
vendor/bin/phpunit
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。