Hi everyone!
I have been recent trying to get the Helix Follower Webhook up and running. Let me layout the process I have taken and where I have become stuck. (I am use node/express)
- Create body params
var hookParams = JSON.stringify({
'hub.callback': userData.followHook,
'hub.mode': 'subscribe',
'hub.topic': `https://api.twitch.tv/helix/users/follows?first=1&to_id=${
userData._id
}`,
'hub.lease_seconds': 864000
});
- Setup POST request:
var request = https.request(
{
method: 'POST',
hostname: apiBaseHostName,
path: webhookPath,
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json',
'Content-Length': hookParams.length
}
},
response => {
response.on('error', error => {
console.log(error);
});
response.on('data', data => {
/* No data comes back, but this is required */
});
response.on('end', () => {
if (response.statusCode === 202) {
console.log(
'[setupFollowerWebhook] Follower webhook is listening.'
);
} else {
console.log('[setupFollowerWebhook] Follower webhook was denied.');
}
});
}
);
// Request fanciness //
request.on('error', error => {
console.log(error);
});
request.write(hookParams);
request.end();
apiBaseHostName = 'api.twitch.tv'
webhookPath = '/helix/webhooks/hub'
- Receive GET hub.challenge and send back as response:
server.get('/hook/:rand/follower/:partial', (request, response) => {
console.log(request.query['hub.topic']);
var challenge = request.query['hub.challenge'];
console.log(challenge);
response.status(200).send(challenge);
});
- Wait for alerts that never come
:
server.post('/hook/:rand/follower/:partial', (request, response) => {
console.log('New Follower!');
response.sendStatus(200);
});
I believe my flow is setup properly, but for some reason I never receive any payloads. Currently I am listening to Dr. Disrespect for any new follows on his account. Would really appreciate some help if anyone has any!!
Thanks so much in advance,
-Alec