Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
php-node-client
7 лет назад

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 работает над голосом, вместе мы - банда=)

0
6383.060 GOLOS
На Golos с March 2017
Комментарии (11)
Сортировать по:
Сначала старые