Webhook-ты қосу
-
«аккаунт қосу» бөліміне өтіңіз және Webhook таңдаңыз.
-
Деректерді толтырыңыз
Веб-узелдің аты — аккаунтты көрсетуде ыңғайлы болу үшін кез келген еркін атау.
URL-адрес — аккаунтты қосу және Webhook жариялау үшін сұрау жіберілетін адрес.
Құпия токен — клиенттің сұрауларын аутентификациялау үшін қажет. Сұраудың Headers-ке x-hub-signature жіберіледі, оны клиент жағында тексеру және салыстыру қажет.
-
Доменді растау Аккаунт қосқанда серверіңізге JSON-мәліметтері бар POST-сұрау жіберіледі. Сервер жауап ретінде
1qsRgoUgtжолын қайтаруы керек.{
"type": "confirmation",
"project_id": "жобаңыздың-id"
} -
Клиент жағындағы құпия токенді тексеру
<?php
public const CLIENT_SECRET_KEY = '{Есептік жазбаны қосқан кезде "құпия токен" өрісіне енгізген кілт}';
/**
* Сұраудың қолтаңбасын тексеру
* @return bool
*/
public function checkSignature()
{
$data = getPayload();
$expectedSignature = hash_hmac('sha1', $data ? json_encode($data) : '', self::CLIENT_SECRET_KEY);
$headerSignature = getRequestHeaders('x-hub-signature');
$signature = strlen($headerSignature) === 45 && strpos($headerSignature , 'sha1=') === 0 ? substr($headerSignature, 5) : '';
return hash_equals($signature, $expectedSignature);
}
/**
* Сұрау деректерін алу
* @return array
*/
private function getPayload()
{
$data = file_get_contents('php://input');
return json_decode($data, true);
}
/**
* Сұрау заголовогын алу
* @param string $headerCode
* @return string|null
*/
private function getRequestHeaders($headerCode)
{
$requestHeaders = apache_request_headers();
return isset($requestHeaders[$headerCode]) ? $requestHeaders[$headerCode] : null;
}
?> -
Постты жариялау Пост жариялағанда серверіңізге JSON-мәліметтері бар POST-сұрау жіберіледі.
{
"action": "create_post",
"project_id": int,
"id": int,
"type": "string",
"title": "string",
"content": "string",
"location": {
"id": int,
"name": "string",
"description": "string",
"lat": float,
"lng": float
},
"attaches": []
}