Client library for interacting with Chronicle.
composer require lookyman/chronicle-api
use Lookyman\Chronicle\Api;
use ParagonIE\ConstantTime\Base64UrlSafe;
use ParagonIE\Sapient\CryptographyKeys\SigningPublicKey;
use ParagonIE\Sapient\CryptographyKeys\SigningSecretKey;
$api = new Api(
new Client(), // Client must implement Http\Client\HttpAsyncClient
new RequestFactory(), // RequestFactory must implement Interop\Http\Factory\RequestFactoryInterface
'https://chronicle.uri',
new SigningPublicKey(Base64UrlSafe::decode('chronicle public key')) // optional, omit if you don't care about validating API responses
);
var_dump($api->lastHash()->wait());
// you must authenticate first before you can publish a message
$api->authenticate(
new SigningSecretKey(Base64UrlSafe::decode('your secret key')),
'your client id'
);
var_dump($api->publish('hello world')->wait());
For implementations of client and request factory, you can use for example Guzzle 6 HTTP Adapter and HTTP Factory for Guzzle respectively.
All endpoints return Http\Promise\Promise
, so you can either just ->wait()
for the response, or handle it asynchronously with ->then()
. Responses are just plain arrays, look up the structure in the Chronicle's documentation.