php-node-client
8 лет назадJSON-RPC клиент для Голоса на PHP: php-graphene-node-client v1.0.0 [опен сорс, первый релиз]
Код доступен на Github или packagist под MIT лицензией. Автор @t3ran13
Установка через Composer
composer require t3ran13/php-graphene-node-client
Использование
<?php
use GrapheneNodeClient\Commands\GetTrendingCategoriesCommand;
use GrapheneNodeClient\Connectors\WebSocket\GolosWSConnector;
$command = new GetTrendingCategoriesCommand(new GolosWSConnector());
$trendingTags = $command->execute(
[
"", //'after'
2 //'limit'
]
);
// вернет
// [
// "id" => 2,
// "result" => [
// [
// "name" => "ru--zhiznx",
// "total_payouts": "410233.942 GBG",
// ...
// ],
// ...
// ]
// ]
$trendingTags = $command->execute(
[
"", //'after'
2 //'limit'
],
'result',
GolosWSConnector::ANSWER_FORMAT_ARRAY // or GolosWSConnector::ANSWER_FORMAT_OBJECT
);
// вернет
// [
// [
// "name" => "ru--zhiznx",
// "total_payouts": "410233.942 GBG",
// ...
// ],
// ...
// ]
Реализованный список комманд
namespace: GrapheneNodeClient\Commands;
- GetContentCommand
- GetDiscussionsByAuthorBeforeDateCommand
- GetDiscussionsByBlogCommand
- GetDiscussionsByCreatedCommand
- GetTrendingCategoriesCommand
Реализованный список коннекторов
namespace: GrapheneNodeClient\Connectors\WebSocket;
- GolosWSConnector (wss://ws.golos.io)
- SteemitWSConnector (wss://ws.steemit.com)
переключение между коннекторами
<?php
use GrapheneNodeClient\Commands\GetContentCommand;
use GrapheneNodeClient\Connectors\InitConnector;
$command = new GetContentCommand(InitConnector::getConnector(InitConnector::PLATFORM_STEEMIT));
$content = $command->execute(
[
0 => "author",
1 => "permlink"
]
);
// вернет
// [
// "id" => 1,
// "result" => [
// ...
// ]
// ]
Создание своего коннектора
<?php
namespace My\App\Connectors;
use GrapheneNodeClient\Connectors\ConnectorInterface;
class MyConnector implements ConnectorInterface
{
public function doRequest(array $data, $answerFormat = self::ANSWER_FORMAT_ARRAY) {
// TODO: Implement doRequest() method.
}
}
Создание своей комманды
<?php
namespace My\App\Commands;
use GrapheneNodeClient\Commands\CommandAbstract;
class MyCommand extends CommandAbstract
{
protected $method = 'method_name';
protected $requiredParams = [
// for list params
0 => [
'param_key1', //обязательное поле с ключем 'param_key1'
'param_key2', //обязательное поле с ключем 'param_key2'
]
//или
//'param_key1', //обязательное поле с ключем 'param_key1'
//'param_key2', //обязательное поле с ключем 'param_key1'
];
}
Дорожная карта
- расширить список реализованных комманд
- попробовать публикацию постов
P.S.
Отпишитесь кто еще с PHP работает над голосом, вместе мы - банда=)