Інтеграція Canny для збору запитів на функції
Canny — платформа для збору та приоритизації фічареквестів від користувачів. Вбудовується в продукт через SDK, дозволяє авторизованим користувачам створювати запити, голосувати та підписуватися на оновлення.
SSO-інтеграція з вашим продуктом
Canny підтримує SSO через JWT, щоб користувачі не створювали окремий аккаунт:
// CannyTokenController
public function generate(): JsonResponse
{
$user = auth()->user();
$userData = [
'avatarURL' => $user->avatar_url,
'email' => $user->email,
'id' => (string) $user->id,
'name' => $user->name,
// Опціонально: companies для B2B сегментації
'companies' => [[
'id' => (string) $user->company_id,
'name' => $user->company->name,
]],
];
$token = \Firebase\JWT\JWT::encode(
['userData' => $userData],
config('services.canny.private_key'),
'HS256'
);
return response()->json(['token' => $token]);
}
Вбудовування віджета
// У React-компоненті
useEffect(() => {
// Завантаження Canny SDK
(function(w, d, i, s) {
// ... Canny SDK loader
})(window, document, 'Canny', 'https://cdn.canny.io/sdk.js');
const initCanny = async () => {
const { token } = await fetch('/api/canny-token').then(r => r.json());
window.Canny('identify', {
appID: process.env.NEXT_PUBLIC_CANNY_APP_ID,
user: { ssoToken: token },
});
window.Canny('render', {
boardToken: 'YOUR_BOARD_TOKEN',
basePath: '/feedback',
ssoToken: token,
});
};
initCanny();
}, []);
Webhook для сповіщень
Canny відправляє вебхуки при зміні статусу запиту:
Route::post('/webhooks/canny', function (Request $request) {
// Верифікація підпису
$signature = hash_hmac('sha256', $request->getContent(), config('services.canny.webhook_secret'));
if (!hash_equals($signature, $request->header('Canny-Signature'))) abort(401);
$event = $request->json('type');
$post = $request->json('object');
if ($event === 'post.statusChanged' && $post['status'] === 'complete') {
// Сповіщаємо всіх проголосувавших по email
// Canny робить це автоматично, але можна додати власну логіку
Log::info("Canny feature completed: {$post['title']}");
}
return response('ok');
});
Терміни
Інтеграція Canny з SSO та вебхуками: 1–2 робочих дні.







