Перейти к основному содержимому

Подключение Webhook

  1. Перейдите в раздел Подключить аккаунт, выберите Webhook.

  2. Заполните данные.

    Имя веб-узла: любое произвольное имя, используется для удобства отображения данного аккаунта в списке всех аккаунтов.

    URL-адрес: адрес на который будет уходить запрос для подключение аккаунта и публикации Webhook.

    Секретный токен: необходим для аутентификации запросов клиента, в Headers запроса мы отправляем x-hub-signature который необходимо проверить и сравнить на стороне клиента.

  3. Подтверждение домена при подключении аккаунта. На Ваш сервер будет отправлен POST-запрос, содержащий JSON:

    {"type": "confirmation", "project\_id": id-вашего-проекта}. Сервер должен вернуть строку: 1qsRgoUgt.}

  4. Проверка Секретного токена на стороне клиента, пример на 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);} /*** @return string|null*/private function getRequestHeaders($headerCode){	$requestHeaders = apache_request_headers();	return isset($requestHeaders[$headerCode]) ? $requestHeaders[$headerCode] : null;} ?>
  5. При публикации поста на Ваш сервер будет POST-запрос, содержащий JSON.

    {	"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": [],}