项目阶段/hasoffers-api-wrapper

1.0.6 2018-03-14 12:36 UTC

This package is not auto-updated.

Last update: 2024-09-20 07:35:23 UTC


README

Packagist Software License build status

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

贡献

有关详细信息,请参阅CONTRIBUTINGCONDUCT

安全

如果您发现任何安全相关的问题,请通过电子邮件作者而不是使用问题跟踪器。

许可

MIT许可证(MIT)。有关更多信息,请参阅许可文件