项目阶段 / hasoffers-api-wrapper
轻松调用HasOffers API
Requires
- php: >=5.6
- ext-curl: *
- netresearch/jsonmapper: *
- phpunit/php-code-coverage: *
- phpunit/phpunit: *
This package is not auto-updated.
Last update: 2024-09-20 07:35:23 UTC
README
HasOffers 将您的性能营销提升到新的水平。您可以使用他们的管理面板来设置营销活动并处理所有事情(获取潜在客户、销售、收入、点击量、您的发布者等等)。但也许您想构建自己的应用程序,以将此类数据集成到您的业务流程中。
因此,您可以使用HasOffers API。这个包装包希望为您提供一个易于使用的面向对象方法集,以便轻松进行API调用,而无需太多麻烦。
安装
通过Composer
$ composer require projectstage/hasoffers-api-wrapper
基本用法
这并不是什么火箭科学。使用您的认证数据实例化HasOffers客户端,设置一些标准,最后调用API。有关如何使用HasOffers API进行认证的更多信息,请参阅此处:设置API认证。
有关返回字段名称和值的详细信息,例如“出价”,请参阅此处
require_once __DIR__.'/vendor/autoload.php'; // your target controller name $target = 'Offer'; // instantiate HasOffers client $HasOfferClient = new \HasOffersApi\HasOffersClient('YOUR-NETWORK-ID','YOUR-API-KEY'); // setup criteria - here: From which controller you want to call which method $Criteria = new \HasOffersApi\Helper\Criteria($target, 'findAll'); // set the criterias $HasOfferClient->setFilters($Criteria); // finally make the API call // will return a stdClass object $offers = $HasOfferClient->callApi(); // output the HasOffers campaign name foreach($offers as $offer) { echo $offer->{$target}->name."\n"; }
扩展标准
和过滤
您可以定义任意多的和过滤。不幸的是,和过滤 + 或过滤的组合是不可能的。从开发的角度来看,您可以将它们注释如下。
$Criteria ->andFilter('name', '%Love%', $Criteria::FILTER_LIKE) ->andFilter('advertiser_id',2) ->orFilter('name', '%live%', $Criteria::FILTER_LIKE);
但是,最后一条记录是有效的。在上面的例子中,两个和过滤都将被忽略,因此MySQL的等效查询将如下所示。
SELECT * FROM `Offer` WHERE `name` LIKE '%live%';
假设或过滤是第一条记录,那么两个和过滤都是活动的。
SELECT * FROM `Offer` WHERE `name` LIKE '%Love%' AND `advertiser_id` = 2;
以下是一个使用一个或多个和过滤的简要示例。
require_once __DIR__.'/vendor/autoload.php'; // your target controller name $target = 'Offer'; // instantiate HasOffers client $HasOfferClient = new \HasOffersApi\HasOffersClient('YOUR-NETWORK-ID','YOUR-API-KEY'); // setup criteria - here: From which controller you want to call which method $Criteria = new \HasOffersApi\Helper\Criteria($target, 'findAll'); // find all offer where field name contains "YOUR-SEARCH-TERM" // MySQL equivalent: SELECT FROM `Offer` WHERE `name` LIKE '%YOUR-SEARCH-TERM%' $Criteria->andFilter('name', '%YOUR-SEARCH-TERM%', $Criteria::FILTER_LIKE); // another example // maybe you would like to use more AND combinations // MySQL equivalent: SELECT FROM `Offer` WHERE `name` LIKE '%YOUR-SEARCH-TERM%' AND `advertiser_id` = 2 $Criteria ->andFilter('name', '%Love%', $Criteria::FILTER_LIKE) ->andFilter('advertiser_id',2); // set the criterias $HasOfferClient->setFilters($Criteria); // finally make the API call $offers = $HasOfferClient->callApi();
或过滤
这里我们有与和过滤相同的限制,两者都不能组合。
require_once __DIR__.'/vendor/autoload.php'; // your target controller name $target = 'Offer'; // instantiate HasOffers client $HasOfferClient = new \HasOffersApi\HasOffersClient('YOUR-NETWORK-ID','YOUR-API-KEY'); // setup criteria - here: From which controller you want to call which method $Criteria = new \HasOffersApi\Helper\Criteria($target, 'findAll'); // find all offer where field name contains "YOUR-SEARCH-TERM" // MySQL equivalent: SELECT FROM `Offer` WHERE `name` LIKE '%YOUR-SEARCH-TERM%' $Criteria->orFilter('name', '%YOUR-SEARCH-TERM%', $Criteria::FILTER_LIKE); // another example // maybe you would like to use more AND combinations // MySQL equivalent: SELECT FROM `Offer` WHERE `name` LIKE '%YOUR-SEARCH-TERM%' OR `advertiser_id` = 2 $Criteria ->orFilter('name', '%Love%', $Criteria::FILTER_LIKE) ->orFilter('advertiser_id',2); // set the criterias $HasOfferClient->setFilters($Criteria); // finally make the API call $offers = $HasOfferClient->callApi();
条件过滤
此过滤器将用于报告任务。有关HasOffer报告的更多信息,请参阅此处。
条件过滤不支持或过滤。即使您可以注释
$Criteria ->conditionalFilter('expiration_date', ['2017-10-01', '2017-10-31'], $Criteria::FILTER_BETWEEN) ->orFilter('name', '%live%', $Criteria::FILTER_LIKE);
但或过滤部分将被忽略。
标准过滤器列表
Criteria::FILTER_OR; Criteria::FILTER_NOT_EQUAL_TO; Criteria::FILTER_LESS_THAN; Criteria::FILTER_LESS_THAN_OR_EQUAL_TO; Criteria::FILTER_GREATER_THAN; Criteria::FILTER_GREATER_THAN_OR_EQUAL_TO; Criteria::FILTER_LIKE; Criteria::FILTER_NOT_LIKE; Criteria::FILTER_NULL; Criteria::FILTER_NOT_NULL; Criteria::FILTER_TRUE; Criteria::FILTER_FALSE; // used for contitioanlFilter Criteria::FILTER_EQUAL_TO; Criteria::FILTER_BETWEEN;
HasOffers客户端设置
setFields
设置一些字段基本上意味着您的响应只应返回指定的字段,而不是更多。MySQL的等效查询如下所示。
SELECT `advertiser_id`, `name`, `preview_url`, `offer_url` FROM `Offer`;
$fields = [ 'advertiser_id', 'name', 'preview_url', 'offer_url' ]; $HasOfferClient->setFields($fields);
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
测试
$ vendor/bin/phpunit
贡献
有关详细信息,请参阅CONTRIBUTING和CONDUCT。
安全
如果您发现任何安全相关的问题,请通过电子邮件作者而不是使用问题跟踪器。
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。