我正在尝试使用 Agora Chat 将消息/聊天集成到我的应用程序中。
前端是用 Angular 制作的。后端是用 NodeJS 制作的,我对 NodeJS 部分很挣扎。
据我了解,我必须先在 Agora Chat 中注册我的用户,然后他们才能交换消息。
有 Restful API 解释了如何做到这一点。但奇怪的是,Agora 似乎并没有为后端部分提供现成的客户端。至少在 NodeJS 中不是这样,我觉得这很奇怪。我错过了什么?我不是第一个遇到这个问题的人。
我应该使用 Axios/Got 等进行 API 调用吗?难道真的没有现成的官方 NodeJS 客户端吗?
最重要的是:我应该使用 app token 来调用 API。但我该如何得到一个呢?该文档提供了一个 Java 中的“令牌服务器”示例,但我不会仅仅为了为 Agora 生成一些令牌而放置 Java 服务器。必须有一个更简单的解决方案。
如果我使用管理页面生成的临时令牌从 Postman 手动调用 API 端点,它会起作用,所以我很确定 API 调用没问题
我尝试过
npm i agora-access-token
,但它似乎只为 Agora Signal / AgoraRTC 生成代币。聊天产品有类似的产品吗?
如果您想构建聊天令牌,需要使用agora-token代替。安装
npm i agora-token
ChatTokenBuilder
包含在agora-token中。
这是一个使用 ChatTokenBuilder
的简单代码
import agoraToken from 'agora-token'
const { ChatTokenBuilder } = agoraToken
const appToken =
ChatTokenBuilder.buildAppToken(appId, appCertificate, expirationInSeconds);
const userToken =
ChatTokenBuilder.buildUserToken(appId, appCertificate, user.userUuid, expirationInSeconds);
希望这有帮助
app.get('/chattoken/:channelName/:username', (req, res) => {
// Extract parameters from URL
const { channelName, username } = req.params;
console.log("Chat User name:", username);
const userToken = ChatTokenBuilder.buildUserToken(APP_ID, APP_CERTIFICATE, username, 3000);
console.log("Chat User Token:", userToken);
const appToken = ChatTokenBuilder.buildAppToken(APP_ID, APP_CERTIFICATE, 3000);
// Generate token
//const token = RtmTokenBuilder.buildToken(APP_ID, APP_CERTIFICATE, channelName, username, Role.PUBLISHER, 6000)
//const token1 = RtcTokenBuilder.buildTokenWithUid(APP_ID, APP_CERTIFICATE, channelName, username, Role.PUBLISHER, 6000)
// Send token as response
res.json({
rtmToken: appToken,
rtcToken: userToken
});
});
只有您的用户在agora用户管理中注册后,token才会起作用