기술 자료

​
​

Development

User Acquisition

Monetization

산업 분야

Vivox Core SDK

Vivox Core SDK

이 페이지는 선택한 언어로 제공되지 않습니다.
Vivox
​
​
Vivox Core SDK
  • Overview
  • Before you begin
  • Get started
  • Release notes
  • Developer Guide
  • Reference
    • Access Token Developer Guide
      • Access token terminology
      • Requests that require access tokens
      • Access token identifiers
      • Access token format
      • Access token examples
      • Generate a token on the client
      • Generate a token on a secure server
        • Example: C++
        • Example: C#
        • Example: Python
        • Example: JavaScript
      • Key update API
      • Override development key generation
      • Access token error codes
    • Server to Server Web API Reference Guide
    • Core API Reference Manual
    • Third-party license information
  • Privacy overview
  1. Vivox Core SDK documentation

Example: C\#

How to generate Vivox access tokens using C# code.
읽는 시간 2분
최근 업데이트: 8달 전

The following code is an example of how to generate access tokens in C#.
using System;using System.Text;using System.Collections.Generic;using System.Security.Cryptography;using System.Web.Script.Serialization;namespace VxTokenGenerator{ class TokenGenerator { static void Main(string[] args) { Console.WriteLine(vxGenerateToken("secret", "issuer", 1559359105, "join", 123456, "sip:.username.@domain.vivox.com", "sip:confctl-g-channelname@domain.vivox.com")); } static string vxGenerateToken(string key, string issuer, int exp, string vxa, int vxi, string f, string t) { var claims = new Claims { iss = issuer, exp = exp, vxa = vxa, vxi = vxi, f = f, t = t }; List<string> segments = new List<string>(); // Header is static - base64url encoded {} - Can also be defined as a constant "e30" var header = Base64URLEncode("{}"); segments.Add(header); // Encode payload var claimsString = new JavaScriptSerializer().Serialize(claims); var encodedClaims = Base64URLEncode(claimsString); // Join segments to prepare for signing segments.Add(encodedClaims); string toSign = String.Join(".", segments); // Sign token with key and SHA256 string sig = SHA256Hash(key, toSign); segments.Add(sig); // Join all 3 parts of token with . and return string token = String.Join(".", segments); return token; } private static string Base64URLEncode(string plainText) { var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText); // Remove padding at the end var encodedString = System.Convert.ToBase64String(plainTextBytes).TrimEnd('='); // Substitute URL-safe characters string urlEncoded = encodedString.Replace("+", "-").Replace("/", "_"); return urlEncoded; } private static string SHA256Hash(string secret, string message) { var encoding = new System.Text.ASCIIEncoding(); byte[] keyByte = encoding.GetBytes(secret); byte[] messageBytes = encoding.GetBytes(message); // The instance of HMACSHA256 is constructed and disposed in this method because it is not thread safe using (var hmacsha256 = new HMACSHA256(keyByte)) { byte[] hashmessage = hmacsha256.ComputeHash(messageBytes); var hashString = Convert.ToBase64String(hashmessage).TrimEnd('='); string urlEncoded = hashString.Replace("+", "-").Replace("/", "_"); return urlEncoded; } } public class Claims { public string iss { get; set; } public int exp { get; set; } public string vxa { get; set; } public int vxi { get; set; } public string f { get; set; } public string t { get; set; } public string sub { get; set; } } }}

Copyright © 2026 Unity Technologies
법률 정보개인정보 처리방침쿠키Documentation Terms of Use개인 정보 판매 또는 공유 금지개인정보 보호 선택(쿠키 설정)

'Unity', Unity 로고 및 기타 Unity 상표는 미국 및 기타 지역 내 Unity Technologies 또는 그 계열사의 상표 또는 등록상표입니다(자세한 내용은 여기에서 확인하세요). 기타 명칭 또는 브랜드는 해당 소유자의 상표입니다.

일부 페이지는 편의를 위해 기계 번역되었으며 부정확한 내용이 있을 수 있습니다. 정보가 상충되는 경우, 영어 버전을 우선으로 참조하세요.


    이 페이지의 문제 보고