2016-11-27 2 views
1

У меня есть свой код авторизации, идентификатор клиента, секрет клиента и теперь, чтобы загрузить файл в мою учетную запись, мне нужен ДОСТУП. Я использую ниже код, скопированный где-то в stackoverflow, чтобы получить ACCESS TOKEN.Получите токен доступа из API окна из приложения asp.net?

public string 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; 

      return strResponse; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

Тип контента ответа - это HTML, а не JSON, как они упомянули на странице своих документов. Можете ли вы мне помочь мне получить маркер доступа из BOX API с помощью приложения asp.net?

+0

Какой ответ html вы получите. Взгляните, потому что это может быть сообщение об ошибке. Получаете ли вы успешный код ответа? –

+0

Да. Получение успешного кода ответа. –

ответ

2

Ниже кусок кода сделал работу:

 public string GetAccessToken() 
     { 
     string param = string.Format("grant_type=authorization_code&code={0}&client_id={1}&client_secret={2}", CODE, CLIENT_ID, CLIENT_SECRET); 

     var client = new RestClient("https://api.box.com/oauth2/token/"); 
     var request = new RestRequest(Method.POST); 
     request.AddHeader("content-type", "application/x-www-form-urlencoded"); 
     request.AddParameter("application/x-www-form-urlencoded", param, ParameterType.RequestBody); 
     var response = client.Execute(request); 
     var json = JObject.Parse(response.Content); 

     return Convert.ToString(json["access_token"]); 
     } 

Пожалуйста, обратите внимание на заголовок и параметров, я добавил в код.

Смежные вопросы