18 de setembro de 2022 • 2 min de leitura
Tutorial rápido de como gerar seu OAuth Token e consumir a Twitch API.
{
"access_token": "jostpf5q0puzmxmkba9iyug38kjtg",
"expires_in": 5011271,
"token_type": "bearer"
}
{
"data": [
{
"id": "493057",
"name": "PLAYERUNKNOWN'S BATTLEGROUNDS",
"box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/PLAYERUNKNOWN%27S%20BATTLEGROUNDS-{width}x{height}.jpg"
},
// ...
],
"pagination":{
"cursor":"eyJiIjpudWxsLCJhIjp7Ik9mZnNldCI6MjB9fQ=="
}
}
app.post('/twitch/token', async (_: Request, res: Response) => {
try {
const { data } = await axios.post('https://id.twitch.tv/oauth2/token', {
client_id: process.env.TWITCH_CLIENT_ID,
client_secret: process.env.TWITCH_CLIENT_SECRET,
grant_type: 'client_credentials',
});
app.set('auth', data.access_token);
return res.status(200).json(data);
} catch (error) {
return res.status(500).json({
message: 'Error while trying to get Twitch token',
});
}
});
app.get('/twitch/top-games', async (_: Request, res: Response) => {
try {
const { data } = await axios.get('https://api.twitch.tv/helix/games/top', {
headers: {
'Authorization': `Bearer ${app.get('auth')}`,
'Client-Id': String(process.env.TWITCH_CLIENT_ID),
},
});
return res.status(200).json(data?.data);
} catch (error) {
return res.status(500).json({
message: 'Error while fetching top games',
});
}
});
app.get('/twitch/users/:login', async (req: Request, res: Response) => {
try {
const login = String(req.params.login);
const { data } = await axios.get(`https://api.twitch.tv/helix/users?login=${login}`, {
headers: {
'Authorization': `Bearer ${app.get('auth')}`,
'Client-Id': String(process.env.TWITCH_CLIENT_ID),
},
});
return res.status(200).json(data?.data[0]);
} catch (error) {
return res.status(500).json({
message: 'Error while fetching user info',
});
}
});
app.get('/twitch/users/follows/:userId', async (req: Request, res: Response) => {
try {
const userId = String(req.params.userId);
const { data } = await axios.get(`https://api.twitch.tv/helix/users/follows?from_id=${userId}`, {
headers: {
'Authorization': `Bearer ${app.get('auth')}`,
'Client-Id': String(process.env.TWITCH_CLIENT_ID),
},
});
return res.status(200).json(data?.data);
} catch (error) {
return res.status(500).json({
message: 'Error while fetching followers',
});
}
});
Estas são algumas das muitas possibilidades de integração com a Twitch API, você pode encontrar mais informações na documentação.
Fontes: