我正在使用firebase云功能创建令牌生成器,我想使用https触发器来创建令牌,但是我需要在对url的调用中包含数据。我知道这是可能的,但我不一定知道该怎么做。
我需要这个,所以我可以在我的函数中为某些变量设置值。
所以最终的网址在伪代码中可能看起来像这样:
https://tokengen/identity=/room=
这里,身份和房间是我想要在调用函数时包含的变量的两个值。
重申,
我知道您可以使用以下方式请求数据:
exports.token = functions.https.onRequest((request, response) => {
但是如何将数据与https调用一起包括在内以作为变量包含。一个例子将不胜感激。与任何答案,建议或参考一样。
编辑:
这里是更新后的代码,
exports.tokenGenerator = functions.https.onRequest((request, response) => {
const { identity, roomName } = request.query;
const AccessToken = require('twilio').jwt.AccessToken;
const VideoGrant = AccessToken.VideoGrant;
const twilioAccountSid = '1xxxxxxxxxx';
const twilioApiKey = '1xxxxxxxxxx';
const twilioApiSecret = '1xxxxxxxxxx';
function generateToken(identity, roomName) {
const videoGrant = new VideoGrant({
room: roomName
});
const token = new AccessToken(twilioAccountSid, twilioApiKey, twilioApiSecret);
token.addGrant(videoGrant);
token.identity = identity;
return token.toJwt();
}
response.send(token.toJwt());
});
当我使用网址时,它返回Error: could not handle the request
答案 0 :(得分:1)
你可以这样做 -
https://yourFB.cloudfunctions.net/token?identity=12&room=12
你可以像 -
一样使用它exports.token = functions.https.onRequest((request, response) => {
const { identity, room } = request.query;
...
});
希望这有帮助。