获取访问令牌和授权

时间:2013-07-05 15:05:15

标签: c# asp.net box-api restsharp

我必须将文件上传到 box.com ,因为我需要授权并获取accesstoken并刷新令牌。我没有在c#asp.net.i中找到任何代码,想要使用c#和asp.net进行身份验证的代码以及获取accesstoken和刷新令牌的代码。我尝试下面的代码我得到错误,因为页面是再次过期请求。 这是c#asp.net中的代码。我正在尝试使用Restsharp

public void GetAccessToken(string code, string ClientId, string ClientSecret)
    {
        RestClient rs = new RestClient();
        string grant_type = "authorization_code";
        RestRequest request = new RestRequest(Method.POST);
        IRestRequest reuest = request;
        string strHeaders = null;
        RestResponse response = default(RestResponse);
        IRestResponse resp = response;
        string strResponse = null;

        try
        {
            rs.BaseUrl = "https://www.box.com/api/oauth2/token";
            request.Resource = "oauth2/token";
            strHeaders = string.Format("grant_type={0}&code={1}&client_id={2}&client_secret={3}", grant_type, code, clientId, Clientsecret);
            request.AddHeader("Authorization", strHeaders);
            resp = rs.Execute(reuest);
            strResponse = resp.Content;

            Label1.Text = strResponse;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

2 个答案:

答案 0 :(得分:1)

从文档中: https://developers.box.com/oauth/ (参见“获取访问令牌”)

在为一组访问令牌和刷新令牌交换auth代码时,您需要向https://www.box.com/api/oauth2/token端点发出POST请求。

尝试在标题的“授权”部分中添加您要添加​​的内容,并将其放入URL编码的POST正文中。

或者甚至更好,尝试一下可用的.NET SDK,它将为您处理OAuth工作流程的这一部分: https://github.com/box/box-windows-sdk-v2

答案 1 :(得分:0)

您还需要使用以下命令设置编码:

request.RequestFormat = DataFormat.Xml;