Trying to test out PubSub with my extension and I can’t quite figure out why I’m getting a 403 response.
The verify works fine. I’m using the extension owner for user id, the secret from the extension secret page and the client id from the extension page.
try {
var decoded = jwt.verify(req.query.token, new Buffer(secret, 'base64'));
var exp = decoded.exp + 3600;
var userid = 0;
if (decoded.user_id) {
var payload = new Object();
payload.exp = exp;
payload.user_id = ext_uid;
payload.role = "external";
payload.channel_id = decoded.channel_id;
payload.pubsub_perms = { listen: ['broadcast'], send: ['*'] };
var token = jwt.sign(payload, new Buffer(secret, 'base64'));
request.post({
url: "https://api.twitch.tv/extensions/message/" + decoded.channel_id,
json:
{
"content_type": 'application/json',
"message": "{foo:'bar'}",
"targets": ['broadcast']
},
headers: {
"Authorization": "Bearer: " + token,
"Client-Id": cid,
"content-type": "application/json"
}
}, function (error, response, body) {
console.log(response);
});
}
} catch (err)
{
console.log(err);
}