favoriteeats / laravel-calq-http
Laravel 对 Calq HTTP API 的包装
dev-master / 1.0.x-dev
2015-07-28 22:01 UTC
Requires
- php: >=5.5.9
- guzzlehttp/guzzle: 5.*
- illuminate/support: ~5.1
Requires (Dev)
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
This package is not auto-updated.
Last update: 2024-10-02 09:49:02 UTC
README
Laravel-Calq-HTTP 是 Calq.io HTTP API 的 API 包装器。当不需要或不想与 Calq Javascript 客户端进行客户端集成时,此软件包非常有用。如果需要客户端集成,请考虑使用官方的 Calq PHP 客户端。
##先决条件
- PHP >= 5.5.9
- Laravel ~5.1
- Composer(推荐,但不是必需的)
- Calq 账户和应用程序 write_key
安装
要安装 Laravel Calq HTTP
composer require favoriteeats/laravel-calq-http
或将"favoriteeats/laravel-calq-http": "dev-master"
添加到 composer.json 文件中 "require" 部分- 将
FavoriteEats\CalqHTTP\CalqHTTPServiceProvider::class
添加到 config/app.php "providers" 数组中 - 然后,运行
composer install
或composer update
- 可选地,使用
php artisan vendor:publish --provider=FavoriteEats\Laravel-Calq-HTTP\CalqHTTPServiceProvider
导出配置文件,并编辑 config/calqhttp.php,或者(更好的方法)将预期的配置值添加到 .env 文件中
用法
有关详细信息,请参阅 Calq HTTP API 文档。
//First, specify the HTTP client you want to use. The service provider defaults to Guzzle, // and Guzzle is the only client currently supported. $calqHTTPApi = new FavoriteEats\CalqHTTP\API\GuzzleCalqHTTPAPI(); //Then, instantiate the main Calq class. $calq = new CalqHTTP($calqHTTPApi, '[Calq write key]'); //If the CalqHTTP instance is resolved through the IoC container then the Guzzle client and write key are // automatically composed with the object as a singleton for you use FavoriteEats\CalqHTTP\CalqHTTP; class SomeController extends Controller { protected $calq; public function __construct(CalcHTTP $calq) { $this->$calq = $calq; } }
使用 /track 端点
//Now create a payload corresponding to the type of request you want to make. Payloads include: // CalqTrackPayload (/track endpoint), CalqProfilePayload (/profile endpoint), // and CalqIdentityPayload (/transfer endpoint). An array of CalqTrackPayloads // is used in /batch endpoint operations. $payload = new FavoriteEats\CalqHTTP\Payloads\CalqTrackPayload([ 12345, //actor (required); unique identifier for the user 'some_action_name', //action_name (required); name of the action you're tracking [ //properties (required), [] allowed; custom or special properties 'time_on_page' => 65.2, '$view_url' => 'http://www.example.com/somepage', '$device_mobile' => true ], '192.168.10.100', //ip_address (optional); actor's ip address Carbon::now()->tz('utc')->format('Y-m-d\TH:i:s\Z') //timestamp (optional); timestamp of event, example using Carbon ]); $response = $calq->track($payload); echo $response->getBody(); //response is a GuzzleHttp\Message\Response object //Payload attributes may also be set individually. $payload = new FavoriteEats\CalqHTTP\Payloads\CalqTrackPayload(); $payload->setActor(12345); $payload->setActionName('some_action_name'); $payload->setProperties(['test'=>true]);
在单个批处理中发送多个有效载荷
//Send multiple payloads together as follows... foreach($userAction as $action) { $payload = new FavoriteEats\CalqHTTP\Payloads\CalqTrackPayload([ 'actor' => $action->user->id, 'action_name' => $action->name, 'properties' => [ '$view_url' => $visit->pageUrl ] ]); $calq->batch($payload); } $response = $calq->track() //sends all batched CalqTrackPayload payloads
使用 /profile 端点
$payload = new FavoriteEats\CalqHTTP\Payloads\CalqProfilePayload([ 12345, [ 'height' => '5ft 11in', 'weight' => '185lbs', 'favorite_color' => 'blue' '$full_name' => 'Snoopy Dawg', '$gender' => 'male', '$age' => 29 ] ]); $response = $calq->profile($payload);
使用 /transfer 端点
$payload = new FavoriteEats\CalqHTTP\Payloads\CalqIdentityPayload([12346, 12345]); $response = $calq->transfer($payload);
高级
您还可以使用 $payload->verify()
方法在发送到 API 之前验证有效载荷是否已设置所有必需的字段。
贡献
请在问题页面上报告任何问题。欢迎提交拉取请求。
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。