在 API HTTP 调用中使用永久令牌
Using Permanent Token in API HTTP Call
我正在编写一个 C# 桌面应用程序,它将进行一些 API 调用以检索 JSON 中的一些数据,我将在其中进行解析。我正在使用 Deputy 的 API (https://www.deputy.com/api-doc/API/Getting_Started),但我无法让它与永久令牌一起使用(我按照他们的步骤生成了一个令牌,所以我有一个)。在过去,我通常只是做一个 HttpWebRequest
并将其传递给 api url 并且它工作正常。但在过去,如果有一个 api 密钥,我会做类似 &api_key=api_key_here
的事情,或者如果我有一个授权密钥,它会像 &Authorization=put_token_here
.
所以我只是想让 Roster 正常工作,例如:/api/v1/supervise/roster/
(参见 https://www.deputy.com/api-doc/API/Roster_Management_Calls)。
所以我的代码看起来像这样:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
try
{
HttpWebRequest httpWReq = (HttpWebRequest)WebRequest.Create(
"https://mysite.na.deputy.com/api/v1/supervise/roster&Authorization=my_permanent_token_here"
);
httpWReq.Method = "GET";
HttpWebResponse response = (HttpWebResponse)httpWReq.GetResponse();
string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
this.Invoke((MethodInvoker)delegate
{
richTextBox1.AppendText(responseString + Environment.NewLine);
});
}
catch (Exception ex)
{
this.Invoke((MethodInvoker)delegate
{
richTextBox1.AppendText(ex.ToString());
});
}
}
但我得到以下信息:
{"error":{"code":403,"message":"No authorization given"}}
我认为它必须是我的永久令牌上的语法,但我已经尝试了 api_key=
和 token=
以及 authorization=
。谁能帮帮我?
您需要按照以下格式在请求 header 中将令牌作为一行传递:
Authorization: OAuth YOURTOKEN
使用以下代码:
string permanentAccessToken = "123456";
WebRequest request = WebRequest.Create("http://blabla");
request.Headers.Add("Authorization", "OAuth " + permanentAccessToken);
我正在编写一个 C# 桌面应用程序,它将进行一些 API 调用以检索 JSON 中的一些数据,我将在其中进行解析。我正在使用 Deputy 的 API (https://www.deputy.com/api-doc/API/Getting_Started),但我无法让它与永久令牌一起使用(我按照他们的步骤生成了一个令牌,所以我有一个)。在过去,我通常只是做一个 HttpWebRequest
并将其传递给 api url 并且它工作正常。但在过去,如果有一个 api 密钥,我会做类似 &api_key=api_key_here
的事情,或者如果我有一个授权密钥,它会像 &Authorization=put_token_here
.
所以我只是想让 Roster 正常工作,例如:/api/v1/supervise/roster/
(参见 https://www.deputy.com/api-doc/API/Roster_Management_Calls)。
所以我的代码看起来像这样:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
try
{
HttpWebRequest httpWReq = (HttpWebRequest)WebRequest.Create(
"https://mysite.na.deputy.com/api/v1/supervise/roster&Authorization=my_permanent_token_here"
);
httpWReq.Method = "GET";
HttpWebResponse response = (HttpWebResponse)httpWReq.GetResponse();
string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
this.Invoke((MethodInvoker)delegate
{
richTextBox1.AppendText(responseString + Environment.NewLine);
});
}
catch (Exception ex)
{
this.Invoke((MethodInvoker)delegate
{
richTextBox1.AppendText(ex.ToString());
});
}
}
但我得到以下信息:
{"error":{"code":403,"message":"No authorization given"}}
我认为它必须是我的永久令牌上的语法,但我已经尝试了 api_key=
和 token=
以及 authorization=
。谁能帮帮我?
您需要按照以下格式在请求 header 中将令牌作为一行传递:
Authorization: OAuth YOURTOKEN
使用以下代码:
string permanentAccessToken = "123456";
WebRequest request = WebRequest.Create("http://blabla");
request.Headers.Add("Authorization", "OAuth " + permanentAccessToken);