PHP SDK使用手冊(cè)
更新時(shí)間:
本文介紹了PHP SDK的安裝方法、示例代碼以及如何使用PHP SDK發(fā)布事件。
SDK簡(jiǎn)介
事件總線EventBridge的SDK分為管控API SDK和數(shù)據(jù)API SDK,示例代碼有所不同。
管控API SDK:對(duì)控制臺(tái)頁(yè)面進(jìn)行操作使用的SDK。
數(shù)據(jù)API SDK:事件數(shù)據(jù)的通道,目前只有發(fā)送事件(PutEvents)屬于此類。
前提條件
您已完成以下操作:
環(huán)境準(zhǔn)備
環(huán)境要求
安裝PHP 5.6及以上版本。更多信息,請(qǐng)參見(jiàn)安裝PHP。
安裝Composer。更多信息,請(qǐng)參見(jiàn)安裝Composer。
查看語(yǔ)言版本
執(zhí)行命令
php -v
查看PHP語(yǔ)言版本。
管控API SDK
安裝SDK
執(zhí)行以下命令安裝PHP SDK。
composer require alibabacloud/eventbridge-20200401 1.0.0
SDK示例
您可以在OpenAPI門戶通過(guò)調(diào)用API接口,自動(dòng)生成對(duì)應(yīng)的SDK示例。具體操作,請(qǐng)參見(jiàn)如何自動(dòng)生成SDK示例。
數(shù)據(jù)API SDK
安裝SDK
執(zhí)行以下命令安裝PHP SDK。
composer require alibabacloud/eventbridge
執(zhí)行以下命令安裝打印端口。
composer require alibabacloud/tea-console
SDK示例
數(shù)據(jù)API SDK目前只包含發(fā)布事件(PutEvents),如需使用PHP SDK發(fā)布一個(gè)或多個(gè)事件,請(qǐng)參考以下示例代碼。
<?php
namespace Alibabacloud\Sample;
use AlibabaCloud\SDK\EventBridge\Eventbridge;
use AlibabaCloud\SDK\EventBridge\Models\CloudEvent;
use AlibabaCloud\SDK\EventBridge\Models\Config;
use AlibabaCloud\Tea\Console\Console;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Exception;
class Client
{
/**
* Create client初始化公共請(qǐng)求參數(shù)。
*
* @return Eventbridge
*/
public static function createClient()
{
$config = new Config([]);
SetAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")).
SetAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).
SetEndpoint("<endpoint>")
return new Eventbridge($config);
}
/**
* PutEvents
*
* @param Eventbridge $client
*
* @return void
*/
public static function PutEvents($client)
{
$event = new CloudEvent([]);
$event->datacontenttype = 'application/json';
$event->data = Utils::toBytes('test');
$event->id = 'a5074581-7e74-4e4c-868f-47e7afdf****';
$event->source = 'acs.oss';
$event->specversion = '1.0';
$event->type = 'oss:ObjectCreated:PostObject';
$event->time = '2020-08-24T13:54:05.965Asia/Shanghai';
$event->subject = '1.0';
$event->type = 'acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg';
$event->extensions = [
'aliyuneventbusname' => 'demo-bus',
];
try {
$resp = $client->putEvents([
$event,
]);
Console::log('--------------------Publish event to the aliyun EventBus--------------------');
Console::log(Utils::toJSONString($resp->toMap()));
} catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
Console::log($error->message);
}
}
/**
* @param string[] $args
*
* @return void
*/
public static function main($args)
{
$client = self::createClient();
self::PutEvents($client);
}
}
require '../vendor/autoload.php';
Client::main([]);
文檔內(nèi)容是否對(duì)您有幫助?