腾讯会议开发者工具_办公协同解决方案
DEMO
请参见 JS-SDK Demo 进行调用。
前端 JS-API 签名工具
协助开发者对 JS-API 使用前通过 Config 接口注入权限验证配置的签名校验。单击下方按钮即可前往腾讯会议前端 JS-API 签名工具:
前端 JS-API 签名示例代码
提供了三种代码示例给开发者参考。
Go 代码示例
/** * 生成签名 * * @param corpId 企业ID * @param sdkId 应用ID * @param timestamp 生成签名的时间对应秒级时间戳 * @param nonceStr 接入方后台随机生成的字符串 * @param sourceUrl 需要初始化JS_SDK的当前页面地址(不要转码) * @param ticket 接入方后台请求会议后台获取的JS_SDK Ticket * @return sign签名,配置参数签名 */func DoSignature(corpId string, sdkId string, timestamp string, nonceStr string, sourceUrl string, ticket string) string { url := DoPreUrl(sourceUrl) fmt.Println(url) plainText := fmt.Sprintf("corp_id=%s&sdk_id=%s×tamp=%s&nonce_str=%s&url=%s&ticket=%s", corpId, sdkId, timestamp, nonceStr, url, ticket) fmt.Println(plainText) sign := fmt.Sprintf("%x", sha256.Sum256([]byte(plainText))) fmt.Println(sign) return sign}
/** * 预处理url * 1、url字段包含协议头、域名、路径、Query参数,不包含位置参数。如:https://www.baidu.com/search?a=1&b=2 * 2、若当前url最后带有#号,例如https://www.baidu.com/search/#/ * 由于#号是代表一个锚点,计算签名的时候,腾讯会议侧会忽略#号和#号后面的,故接入方也需要用代码处理,忽略掉#号和#号后面的,最终url应该为https://www.baidu.com/search/ * * @param sourceUrl 需要初始化JS_SDK的当前页面地址(不要转码) * @return url 预处理之后的url */func DoPreUrl(sourceUrl string) string { rawUrl, _ := url.Parse(sourceUrl) var url string if len(rawUrl.RawQuery) > 0 { url = fmt.Sprintf("%v://%v%v?%v", rawUrl.Scheme, rawUrl.Host, rawUrl.Path, rawUrl.RawQuery) } else { url = fmt.Sprintf("%v://%v%v", rawUrl.Scheme, rawUrl.Host, rawUrl.Path) } return url}
Java 代码示例
/** * 生成签名 * * @param corpId 企业ID * @param sdkId 应用ID * @param timestamp 生成签名的时间对应秒级时间戳 * @param nonceStr 接入方后台随机生成的字符串 * @param sourceUrl 需要初始化JS_SDK的当前页面地址(不要转码) * @param ticket 接入方后台请求会议后台获取的JS_SDK Ticket * @return sign签名,配置参数签名 */public static String DoSignature(String corpId ,String sdkId ,String timestamp,String nonceStr,String sourceUrl,String ticket ) { String url = DoPreUrl(sourceUrl); String plainText = String.format("corp_id=%s&sdk_id=%s×tamp=%s&nonce_str=%s&url=%s&ticket=%s", corpId, sdkId, timestamp, nonceStr, url, ticket); MessageDigest messageDigest; String sign = ""; try { messageDigest = MessageDigest.getInstance("SHA-256"); messageDigest.update(plainText.getBytes("UTF-8")); sign = bytesToHex(messageDigest.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return sign;}
/** * 预处理url * 1、url字段包含协议头、域名、路径、Query参数,不包含位置参数。如:https://www.baidu.com/search?a=1&b=2 * 2、若当前url最后带有#号,例如https://www.baidu.com/search/#/ * 由于#号是代表一个锚点,计算签名的时候,腾讯会议侧会忽略#号和#号后面的,故接入方也需要用代码处理,忽略掉#号和#号后面的,最终url应该为https://www.baidu.com/search/ * * @param sourceUrl 需要初始化JS_SDK的当前页面地址(不要转码) * @return url 预处理之后的url */public static String DoPreUrl(String sourceUrl) { URL rawUrl = null; try { rawUrl = new URL(sourceUrl); } catch (MalformedURLException e) { e.printStackTrace(); } String url; if (rawUrl.getQuery() != null && rawUrl.getQuery() != "") { url = String.format("%s://%s%s?%s", rawUrl.getProtocol(), rawUrl.getHost(), rawUrl.getPath(), rawUrl.getQuery()); } else { url = String.format("%s://%s%s", rawUrl.getProtocol(), rawUrl.getHost(), rawUrl.getPath()); } return url;}
static char[] HEX_CHAR = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
/** * 转Hex * @param bytes * @return Hex */static String bytesToHex(byte[] bytes) { char[] buf = new char[bytes.length * 2]; int index = 0; for (byte b : bytes) { buf[index++] = HEX_CHAR[b >>> 4 & 0xf]; buf[index++] = HEX_CHAR[b & 0xf]; } return new String(buf);}
Python 代码示例
# 加签def sign(corp_id, sdk_id, timestamp, nonce_str, url, ticket): tobeSig = "corp_id={0}&sdk_id={1}×tamp={2}&nonce_str={3}&url={4}&ticket={5}".format( corp_id, sdk_id, timestamp, nonce_str, preUrl(url), ticket) signature = data_sha = hashlib.sha256(tobeSig.encode('utf-8')).hexdigest() return signature.encode('utf-8')
# url预处理def preUrl(sourceUrl): rawURL = urlparse(sourceUrl) s = '' if len(rawURL.query) > 0: s = "{0}://{1}{2}?{3}".format(rawURL.scheme, rawURL.netloc, rawURL.path, rawURL.query) else: s = "{0}://{1}{2}".format(rawURL.scheme, rawURL.netloc, rawURL.path) print(s) return s
对腾讯办公协同的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案