Asana Authorization error on Mono.NET framework

时间:2015-08-07 01:45:18

标签: mono restsharp asana

I'm trying to use the Asana restful API and I receive this error:

{"errors":[{"message":"Not Authorized"}]}

 public static string GetProjects()
{
    string url = "https://app.asana.com/api/1.0/projects/"; // Constants.BaseApiUrl + "projects";
    var client = new RestClient(url);
    System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
    client.Authenticator = new HttpBasicAuthenticator(AsanaAPIKey.GetBase64(), "");
    var req = new RestRequest(Method.GET);
    RestResponse res =(RestResponse) client.Execute(req);

    return res.Content;
}

public static bool CheckValidationResult(object sp,
    X509Certificate cert,
    X509Chain req,
    System.Net.Security.SslPolicyErrors problem)
{
    return true;
}

I've tried plain httpwebrequest/Httpwebresponse and it didn't work either so I tried the restsharp library and still the same problem.

Any ideas why this error is happening?

1 个答案:

答案 0 :(得分:0)

我不知道.NET,但我发现你正在创建一个HttpBasicAuthenticator,看起来你正在传递一个用户名/密码对。但是你传递的是API密钥的base64编码版本,这是错误的。 documentation on authentication表示当使用HTTP库时,您应该将API密钥作为用户名传递,不变。如果要手动构建完整标题,则只需手动base64编码。