C# Coinbase Pro API 如何解决响应问题。 401
C# Coinbase Pro API How to Trouble Shoot Responses. 401
我一直收到来自 coinbase pro 的 401 响应,我仔细检查了我的密码和 api 密钥,它们是正确的。有没有其他原因我会得到 Unauth 响应
var timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString("F0", CultureInfo.InvariantCulture);
var method = "GET";
var requestPath = "/accounts";
var body = "";
var data = timestamp + method + requestPath + body;
var secret = "***";
var signedMessage = GetHMACInHex(secret, data);
var client = new HttpClient()
{
BaseAddress = new Uri("https://api.pro.coinbase.com")
};
client.DefaultRequestHeaders.Add("CB-ACCESS-SIGN", signedMessage);
client.DefaultRequestHeaders.Add("CB-ACCESS-KEY", "***");
client.DefaultRequestHeaders.Add("CB-ACCESS-TIMESTAMP", timestamp);
client.DefaultRequestHeaders.Add("CB-ACCESS-PASSPHRASE", "***");
client.DefaultRequestHeaders.Add("User-Agent", "CoinbaseProClient");
这就是我签署数据的方式
static string GetHMACInHex(string key, string data)
{
var decoded = Convert.FromBase64String(key);
var dataBytes = Encoding.UTF8.GetBytes(data);
using (var hmac = new HMACSHA256(decoded))
{
var hash = hmac.ComputeHash(dataBytes);
return Convert.ToBase64String(hash);
}
}
401 status code 当以下资源验证在 POST 或 PUT 请求上失败时由 Coinbase 返回:
- authentication_error- 无效授权(通用)
- invalid_token- 无效的 Oauth 令牌
- revoked_token- 已撤销 Oauth
令牌
- expired_token- 过期的 Oauth 令牌
如果您的问题没有在这里列出,您可能会错过通过 DefaultRequestHeaders
。
client.DefaultRequestHeaders
.Accept
.Add(new MediaTypeWithQualityHeaderValue("application/json"));
我一直收到来自 coinbase pro 的 401 响应,我仔细检查了我的密码和 api 密钥,它们是正确的。有没有其他原因我会得到 Unauth 响应
var timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString("F0", CultureInfo.InvariantCulture);
var method = "GET";
var requestPath = "/accounts";
var body = "";
var data = timestamp + method + requestPath + body;
var secret = "***";
var signedMessage = GetHMACInHex(secret, data);
var client = new HttpClient()
{
BaseAddress = new Uri("https://api.pro.coinbase.com")
};
client.DefaultRequestHeaders.Add("CB-ACCESS-SIGN", signedMessage);
client.DefaultRequestHeaders.Add("CB-ACCESS-KEY", "***");
client.DefaultRequestHeaders.Add("CB-ACCESS-TIMESTAMP", timestamp);
client.DefaultRequestHeaders.Add("CB-ACCESS-PASSPHRASE", "***");
client.DefaultRequestHeaders.Add("User-Agent", "CoinbaseProClient");
这就是我签署数据的方式
static string GetHMACInHex(string key, string data)
{
var decoded = Convert.FromBase64String(key);
var dataBytes = Encoding.UTF8.GetBytes(data);
using (var hmac = new HMACSHA256(decoded))
{
var hash = hmac.ComputeHash(dataBytes);
return Convert.ToBase64String(hash);
}
}
401 status code 当以下资源验证在 POST 或 PUT 请求上失败时由 Coinbase 返回:
- authentication_error- 无效授权(通用)
- invalid_token- 无效的 Oauth 令牌
- revoked_token- 已撤销 Oauth 令牌
- expired_token- 过期的 Oauth 令牌
如果您的问题没有在这里列出,您可能会错过通过 DefaultRequestHeaders
。
client.DefaultRequestHeaders
.Accept
.Add(new MediaTypeWithQualityHeaderValue("application/json"));