Том из Tierion здесь. С помощью HashAPI вам необходимо сначала предоставить учетные данные учетной записи, чтобы получить токен доступа. Этот токен доступа - это то, что вы отправите с помощью своего запроса POST вашего хэша в HashAPI, аутентифицируя представление. Я пойду за несколько основных запросов с Hash API и CURL-менее реализациями PHP:
1) Получение вашего маркера доступа маркера & обновления через/лексемы/конечную точку, представив свои учетные данные в качестве параметров ,
Сначала вы должны отправить свое имя пользователя и пароль в качестве параметров запроса в наш/токен/конечную точку, чтобы получить токен доступа. Ваши учетные данные отправляются как параметры, а не как заголовки запросов.
Код:
// Specify your request URL and the parameters you need to send.
$url = 'https://hashapi.tierion.com/v1/auth/token';
$data = array('username' => '_YOUR_USERNAME_', 'password' => '_YOUR_PASSWORD_');
// Use the "HTTP" key even if you're making an HTTPS request.
$options = array(
'http' => array(
'method' => 'POST',
'content' => http_build_query($data)
)
);
// Create and submit the HTTP request.
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
// Check for a failed request, handle error according.
if ($response === FALSE) {
// Handle error
}
// $response now holds your authorization token, expiration time, and refresh token.
var_dump($response);
Пример ответа:
{
"access_token": "eyB9eXAiOiJKV1QiLDJhbGciOiJIUzI1NiJ8.eyJpZCI6IjU2ZyyiYzFhNWY5Yjg1MjMyZmRjYWRhNyIsInJsbiI6MjBwMCwicmxpIjoicyIsImlzQWRtaW4iOnRydWUtImlhdCI6MTQ2MTI0NzE2NSwiZXhwIjoxNDYxMjUwNzY1LCJqdGkiOiI1MDUyYmFlZDhkNTM5NjcyNDNiMjkzN2RjNjRjNTcyOTJmNTQwZDZhIn0.KNiG-QHdeaH1jVLJpx0ykov8Kk7ogts69k5OhDkgFVM",
"expires_in": 3600,
"refresh_token": "ec71236f77ebd665210912ae8891aa08ee8ec3e4"
}
2) Получение обновленный маркер доступа с помощью/обновления/конечной точки, представив свой токен обновления в качестве параметров.
Ваш токен доступа действителен в течение одного часа, прежде чем его нужно будет обновить. Вам необходимо отправить токен обновления, полученный с помощью токена авторизации, в нашу/обновленную/конечную точку. Вы получите новый токен авторизации, который будет действителен в течение еще одного часа. Маркер доступа отправляется как параметры, а не заголовок запроса.
Код:
// Specify your request URL and the parameters you need to send.
$url = 'https://hashapi.tierion.com/v1/auth/refresh';
$data = array('refreshToken' => '_YOUR_VALID_REFRESH_TOKEN_');
// Use the "HTTP" key even if you're making an HTTPS request.
$options = array(
'http' => array(
'method' => 'POST',
'content' => http_build_query($data)
)
);
// Create and submit the HTTP request.
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
// Check for a failed request, handle error according.
if ($response === FALSE) {
// Handle error
}
// $response now holds your NEW authorization token, expiration time, and refresh token.
var_dump($response);
Пример ответа:
{
"access_token": "eyoJAxeiOiJKV1QiLCJhbGciOiIUJzI1NiJ9.eyJpZCI6IjU2ZWRiYzFhNWY5Yjg1jMjyZmRjYWRhNyIsInJsbiI6MjAwMCwicmxpIjoicyIsImlzQWRtaW4iOnRydWUsImlhdCI6MTQ2MTI0Nzk5NCwiZXhwIjoxNDYxMjUxNTk0LJCqdGkiOiIyM2M5NjVjMTYwNzM3NWZlMzQ0MWFiNDFjZTZjM2JkODkzODYxNWRiIn0.qFKIpT5q4K0u1P8_jwUsQkxxcCGu3uGsQKi33c-1gEM",
"expires_in": 3600,
"refresh_token": "ec32176f77ebd556210912ae8891aa08ff8ec3e4"
}
3) Отправка хэш Hash API с вашего жетона авторизации в качестве заголовка в запросе.
Теперь, когда у вас есть токен доступа, вы можете отправлять хэши в Hash API. Вам нужно сделать запрос с вашим хешем в качестве параметра запроса, а ваш токен авторизации - в качестве заголовка запроса.
Код:
// Specify your request URL and the parameters you need to send.
$url = 'https://hashapi.tierion.com/v1/hashitems';
$data = array('hash' => '_YOUR_SHA256_HASH_');
// Use the "HTTP" key even if you're making an HTTPS request.
$options = array(
'http' => array(
'header' => "Authorization: Bearer _YOUR_VALID_ACCESS_TOKEN_",
'method' => 'POST',
'content' => http_build_query($data)
)
);
// Create and submit the HTTP request.
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
// Check for a failed request, handle error according.
if ($response === FALSE) {
// Handle error
}
// $response now holds your blockchain receipt ID and timestamp.
var_dump($response);
Пример ответа:
{
"receiptId": "571694dd6b5c7b711861ea67",
"timestamp": 1461097693
}
4) Получить соответствующий blockchain квитанцию с receiptId.
После того, как вы отправите хэш, вы получите квитанцию. Этот идентификатор является уникальным указателем в системе Tierion для получения вашей цепочки. Этот идентификатор не коррелирует с самой блок-цепочкой, квитанция делает. Чтобы получить квитанцию, вы отправляете квитанцию в нашу/квитанцию / конечную точку.
Вы добавляете квитанцию к концу URL-адреса запроса, а не отправляете его через параметр запроса.
Код:
// Specify your request URL and the parameters you need to send.
$url = 'https://hashapi.tierion.com/v1/receipts' + _YOUR_RECEIPT_ID_;
// Use the "HTTP" key even if you're making an HTTPS request.
$options = array(
'http' => array(
'header' => "Authorization: Bearer _YOUR_VALID_ACCESS_TOKEN_",
'method' => 'POST',
)
);
// Create and submit the HTTP request.
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
// Check for a failed request, handle error according.
if ($response === FALSE) {
// Handle error
}
// $response now holds your blockchain receipt.
var_dump($response);
Пример ответа:
{
"receipt": "{\"@context\":\"https://w3id.org/chainpoint/v2\",\"type\":\"ChainpointSHA256v2\",\"targetHash\":\"a83a2c5c11a2bc814d0b1dca0a385d71a1f4d662b4e31335ba7562c56cce15b1\",\"merkleRoot\":\"2d21167d2f2f73e309d5ac00ab9faaf8b530478c5b64dcd5755511c8a3eccfa3\",\"proof\":[{\"left\":\"7c6e3b0159f1359d0f9f5a3b923011b7466bdf1423317ca09121b5dc61ad1836\"},{\"right\":\"541c5ae04e83c2880296818978511893ba1b00f1515162cd865f25da54f636d0\"},{\"right\":\"67b7ced55a4db4bb0fbaf2036901888a08ab7d8126556431258017652cf62092\"}],\"anchors\":[{\"type\":\"BTCOpReturn\",\"sourceId\":\"33884d525ca1cc54313fa2f27be4cf3442b35314866851cc7fc5ec3973d80250\"}]}"
}
Если у вас есть какие-либо дополнительные вопросы, не стесняйтесь обратиться к нашей команде в [email protected] или ознакомьтесь с нашим Hash API documentation. В ответе here содержится дополнительная информация о HTTP-запросах PHP.
Вы, вероятно, лучше всего используете взаимодействие с Gzzle для API –
@MarkTwigg, можете ли вы прислать мне пример использования? – wxcvbn
взгляните на документацию на жужжание, у него есть некоторые действительно подробные примеры и хорошо прокомментированы –