C# 从DocuSign API请求访问令牌时收到400错误请求消息

C# 从DocuSign API请求访问令牌时收到400错误请求消息,c#,docusignapi,C#,Docusignapi,我可以通过使用链接生成docusign站点的访问令牌 但是,当尝试在我们的系统中使用c#代码获取访问令牌,然后获取消息时(远程服务器返回错误:(400)错误请求) 我遵循下面链接中提到的身份验证过程 我可以得到认证码。我使用此身份验证代码访问API() 下面是我的代码示例 string integrationKey = "key removed"; string secretKey = "key removed"; var httpWebRequest = (HttpWebRequest)We

我可以通过使用链接生成docusign站点的访问令牌

但是,当尝试在我们的系统中使用c#代码获取访问令牌,然后获取消息时(远程服务器返回错误:(400)错误请求)

我遵循下面链接中提到的身份验证过程

我可以得到认证码。我使用此身份验证代码访问API()

下面是我的代码示例

string integrationKey = "key removed";
string secretKey = "key removed";
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://account-d.docusign.com/oauth/token");
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
httpWebRequest.Method = "POST";
string apiStoreConsumer =    "removed";
 httpWebRequest.Headers.Add("Authorization", "Basic " + apiStoreConsumer);
 using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
  {
   string input = "authorization_code&authorization_code= <authentication code goes here>;

   streamWriter.Write(input);
   streamWriter.Flush();
   streamWriter.Close();
 }

WebResponse response = (HttpWebResponse)httpWebRequest.GetResponse();
string integrationKey=“key removed”;
string secretKey=“密钥已删除”;
var httpWebRequest=(httpWebRequest)WebRequest.Create(“https://account-d.docusign.com/oauth/token");
httpWebRequest.ContentType=“应用程序/x-www-form-urlencoded”;
httpWebRequest.Method=“POST”;
字符串apiStoreConsumer=“已删除”;
httpWebRequest.Headers.Add(“授权”、“基本”+apiStoreConsumer);
使用(var streamWriter=newstreamwriter(httpWebRequest.GetRequestStream()))
{
string input=“授权\代码和授权\代码=;
streamWriter.Write(输入);
streamWriter.Flush();
streamWriter.Close();
}
WebResponse=(HttpWebResponse)httpWebRequest.GetResponse();
查询:

为什么我会有400个错误? 我们是否有访问令牌的到期时间,如果有,则需要多长时间? 身份验证代码是否对每个请求都进行了更改

请帮我做这个


谢谢!

我建议您使用.NET/C#中的OAuth库。 如果你想看看这是怎么做的,请 问题是,您需要首先获取代码,然后将其交换为令牌。如果手动执行此操作,则需要执行两个步骤。 第一步要求您在调用任何API之前在浏览器中对用户进行身份验证。 在这一步中,您需要传入集成密钥并重定向回URL。
一旦重定向回,您将收到一个代码,该代码可以使用您谈到的API调用交换访问令牌。

根据他们的文档,授权代码仅在2分钟内有效。请求正文中的参数也应该是
grant\u type=authorization\u code&code=your\u authorization\u code
。您尝试过吗这样吗?在发布问题时,您还应该删除示例代码中的任何密钥。请不要在公共论坛上分享您的秘密,这对于初级工程师来说是个坏例子,他们可能会看到这一点并认为这没什么大不了的。谢谢Inbar。我删除了密钥。真的是个错误。我传递了grant\u type=authorization\u code&code=您的作者代码在正文中。你可以检查代码。谢谢你,正如你所说,我理解了流程,也从docusign文档中理解了流程。在这种方法中,有一个手动交互。实际上在我们的需求中,我们不需要任何手动交互。是否有其他API,通过它我们可以在不进行手动交互的情况下获得基于密钥的令牌关于。请帮助。我需要一点澄清。我们是否每次都遵循这两个步骤(首先获取身份验证码,然后是请求访问令牌的两个步骤).但在我们的需求中,我们不需要任何手动交互。我们希望获取基于访问码的集成密钥和密钥,或者按照这些步骤操作,而不重定向到其他URL来获取身份验证码。我们的需求是我们从任何其他系统获取签名者主体的消息,我们执行一些操作,然后将其发送给DocuSign进行初始化签名ng典礼。我们希望开发一个能够通过任何手动交互完成上述所有步骤的系统。然后,您将不得不使用JWT,而不是授权代码,我在回答中链接的代码示例将向您展示这两个。太好了。我将浏览JWT的文档。我们可以将JWT与visual studio 2012和framework 4.5结合使用吗?对于li,您至少需要有4.5.2拼命工作