Written in Golang, using Gin framework to create a RESTful webservice for generating user tokens for use with the Agora.io platform.
Agora.io Advanced Guide: Token Management
Set the APP_ID and APP_CERT env variables.
go run main.go
#1. Open the Dokerfile
and update the values for APP_ID
and APP_CERT
ENV APP_ID=""
ENV APP_CERTIFICATE=""
#2. To build the container:
docker build -t agora-token-service .
#3. Run the container
docker run agora-token-service
Note: for testing locally
docker run -p 8080:8080 agora-token-service
#1. Open the Dokerfile
and update the values for APP_ID
and APP_CERT
ENV APP_ID=""
ENV APP_CERTIFICATE=""
#2. To build the container:
docker-compose build
#3. Run the container with logs
docker-compose up
#4. Run the container in daemon mode
docker-compose up -d
Note: for testing locally
docker run -p 8080:8080 agora-token-service
endpoint structure
/ping
response:
{"message":"pong"}
The rtc
token endpoint requires a tokentype
(uid || userAccount), channelName
, and the user's uid
(type varies based on tokentype
).
(optional)
Pass an integer to represent the token lifetime in seconds.
endpoint structure
/rtc/:channelName/:role/:tokentype/:uid/?expireTime
response:
{"rtcToken":" "}
The rtm
token endpoint requires the user's uid
.
(optional)
Pass an integer to represent the privelege lifetime in seconds.
endpoint structure
/rtm/:uid/?expireTime
response:
{"rtmToken":" "}
The rte
token endpoint generates both the rtc
and rtm
tokens with a single request. This endpoint requires a tokentype
(uid || userAccount), channelName
, and the user's uid
(type varies String/Int
based on tokentype
).
(optional)
Pass an integer to represent the token lifetime in seconds.
endpoint structure
/rte/:channelName/:role/:tokentype/:uid/?expireTime
response:
{
"rtcToken":" ",
"rtmToken":" "
}