如何为Agora Chat生成应用令牌

问题描述 投票:0回答:2

我正在尝试使用 Agora Chat 将消息/聊天集成到我的应用程序中。

前端是用 Angular 制作的。后端是用 NodeJS 制作的,我对 NodeJS 部分很挣扎。

据我了解,我必须先在 Agora Chat 中注册我的用户,然后他们才能交换消息。

Restful API 解释了如何做到这一点。但奇怪的是,Agora 似乎并没有为后端部分提供现成的客户端。至少在 NodeJS 中不是这样,我觉得这很奇怪。我错过了什么?我不是第一个遇到这个问题的人。

  1. 我应该使用 Axios/Got 等进行 API 调用吗?难道真的没有现成的官方 NodeJS 客户端吗?

  2. 最重要的是:我应该使用 app token 来调用 API。但我该如何得到一个呢?该文档提供了一个 Java 中的“令牌服务器”示例,但我不会仅仅为了为 Agora 生成一些令牌而放置 Java 服务器。必须有一个更简单的解决方案。

如果我使用管理页面生成的临时令牌从 Postman 手动调用 API 端点,它会起作用,所以我很确定 API 调用没问题

我尝试过

npm i agora-access-token
,但它似乎只为 Agora Signal / AgoraRTC 生成代币。聊天产品有类似的产品吗?

node.js agora.io
2个回答
2
投票

如果您想构建聊天令牌,需要使用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);

文档

希望这有帮助


0
投票
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才会起作用

© www.soinside.com 2019 - 2024. All rights reserved.