Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OpenTok TokBox:启动流媒体直播时禁止访问REST API_C#_.net_Opentok_Tokbox - Fatal编程技术网

C# OpenTok TokBox:启动流媒体直播时禁止访问REST API

C# OpenTok TokBox:启动流媒体直播时禁止访问REST API,c#,.net,opentok,tokbox,C#,.net,Opentok,Tokbox,遵循中概述的程序 使用.NET的WebRequest进行API调用。返回状态码“禁止”以及附加消息“颁发者格式无效” 我不确定的是我应该如何为呼叫生成令牌。我链接到的部分中的说明只是说: RESTAPI调用必须使用自定义HTTP头-X-OPENTOK-AUTH-以及JSON web令牌进行身份验证。使用以下声明创建JWT令牌 这让我相信我将使用我选择的JWT库来创建令牌。所以我做了。我使用了.NET的System.IdentityModel.Tokens.Jwt 不过,在网站的.NET部分,会出

遵循中概述的程序

使用.NET的WebRequest进行API调用。返回状态码“禁止”以及附加消息“颁发者格式无效”

我不确定的是我应该如何为呼叫生成令牌。我链接到的部分中的说明只是说:

RESTAPI调用必须使用自定义HTTP头-X-OPENTOK-AUTH-以及JSON web令牌进行身份验证。使用以下声明创建JWT令牌

这让我相信我将使用我选择的JWT库来创建令牌。所以我做了。我使用了.NET的System.IdentityModel.Tokens.Jwt

不过,在网站的.NET部分,会出现以下内容:

您可以通过调用OpenTokSDK.OpenTok实例的GenerateToken。。。方法,或通过调用OpenTokSDK.Session实例的GenerateToken。。。方法创建它之后

这就是我应该做的吗?这就是问题所在吗


我可以包含我的代码,但如果我完全采取了错误的方法,那就没有意义了。

TokBox开发者福音传道者

OpenTok API中有两个令牌概念。其中一个令牌用于验证,另一个是JWT令牌,用于验证从服务器端发出的每个HTTP请求

您尝试创建的令牌似乎用于与进行交互。您向OpenTok REST API发出的每个请求都必须有一个JWT令牌,该令牌由您的API密钥和API密钥签名。签名看起来像这样:

var payload = new Dictionary<string, object>
  {
    { "iss", "12321312" }, // apiKey
    { "ist", "project" },
    { "iat", now }, // current time
    { "exp", expiry } // current time + 300 seconds
  };
var有效负载=新字典
{
{“iss”,“12321312”},//apiKey
{“ist”,“项目”},
{“iat”,now},//当前时间
{“exp”,到期日}//当前时间+300秒
};
您可以使用中的方法作为参考。或者,您可以使用OpenTok.NET SDK发出
StartBroadcast
请求,该请求将为您处理JWT令牌创建


最后,要对OpenTok会话进行身份验证,您必须使用以下选项之一。请注意,用于验证OpenTok会话的令牌不是由任何库创建的。

TokBox开发者福音传道者

OpenTok API中有两个令牌概念。其中一个令牌用于验证,另一个是JWT令牌,用于验证从服务器端发出的每个HTTP请求

您尝试创建的令牌似乎用于与进行交互。您向OpenTok REST API发出的每个请求都必须有一个JWT令牌,该令牌由您的API密钥和API密钥签名。签名看起来像这样:

var payload = new Dictionary<string, object>
  {
    { "iss", "12321312" }, // apiKey
    { "ist", "project" },
    { "iat", now }, // current time
    { "exp", expiry } // current time + 300 seconds
  };
var有效负载=新字典
{
{“iss”,“12321312”},//apiKey
{“ist”,“项目”},
{“iat”,now},//当前时间
{“exp”,到期日}//当前时间+300秒
};
您可以使用中的方法作为参考。或者,您可以使用OpenTok.NET SDK发出
StartBroadcast
请求,该请求将为您处理JWT令牌创建


最后,要对OpenTok会话进行身份验证,您必须使用以下选项之一。请注意,用于验证OpenTok会话的令牌不是由任何库创建的。

感谢您的澄清。我决定试试StartBroadcast路线。生成异常,返回的消息为“{”远程服务器返回错误:(403)禁止。“}”。在创建我的OpenTok实例时,我正在使用帐户apiKey和apiSecret。对吗?嗯,您尝试启动广播的sessionId是由您用来生成OpenTok实例的相同apiKey和secret生成的吗?还请确保您使用的是TLS 1.1或更高版本。更多关于TLS项目的信息请点击此处:再次感谢。到目前为止还没有骰子。4.6.2.net框架。已尝试在代码中显式配置TLS 1.1和1.2。我已经验证了我尝试启动广播的sessionId是由我用来生成OpenTok实例的相同apiKey和secret生成的。我甚至仔细检查并重复了这个过程——生成了一个新的基于项目的会话ID和令牌(Role=Publisher,过期时间=30天)。同样的结果。使用这组相同的密钥/令牌,我能够成功发布/订阅多个摄像头并查看复合提要。我就是不能访问API。Robert,你能在.NET SDK repo上提交一个问题并分享你的代码吗?这将更容易调试,我希望看到这个工作为您!看起来我可以修改我的Wowza服务器,通过URL接受身份验证。为了权宜之计(有点最后期限),我现在不得不去那里。会在更多的时候重游。但是这里的基本问题已经得到了回答——使用startBroadcast和使用项目密钥/机密。非常感谢。谢谢你的澄清。我决定试试StartBroadcast路线。生成异常,返回的消息为“{”远程服务器返回错误:(403)禁止。“}”。在创建我的OpenTok实例时,我正在使用帐户apiKey和apiSecret。对吗?嗯,您尝试启动广播的sessionId是由您用来生成OpenTok实例的相同apiKey和secret生成的吗?还请确保您使用的是TLS 1.1或更高版本。更多关于TLS项目的信息请点击此处:再次感谢。到目前为止还没有骰子。4.6.2.net框架。已尝试在代码中显式配置TLS 1.1和1.2。我已经验证了我尝试启动广播的sessionId是由我用来生成OpenTok实例的相同apiKey和secret生成的。我甚至仔细检查并重复了这个过程——生成了一个新的基于项目的会话ID和令牌(Role=Publisher,过期时间=30天)。同样的结果。使用这组相同的密钥/令牌,我能够成功发布/订阅多个摄像头并查看复合提要。我就是打不到API.R