Перейти к содержимому

Фотография

Запрос на авторизацию к OneDrive


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 21 апреля 2014 - 11:51

Здравсвуйте, возможно кто-нибудь подскажет, в чем дело.
Необходимо написать запрос к one drive для получения token.
var id=" ";
var url=" ";
var secret=" ";
var token=" ";
 
   var objHTTP = new ActiveXObject("MSXML2.XMLHTTP");
   objHTTP.open("POST", strFileURL, false);
   objHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   objHTTP.send("client_id=id&redirect_uri=url&client_secret=secret&code=token&grant_type=authorization_code"); 
   t= objHTTP.responseText;;
   Log.Message(t);
 
При выполнении запроса получаю- server error.
Возможно кто-нибудь подскажет, в чем проблема.
Запрос написан точь-в-точь как написано в документации.

все параметры верные.


  • 0

#2 220v

220v

    Активный участник

  • Members
  • PipPip
  • 107 сообщений
  • ФИО:Олег


Отправлено 21 апреля 2014 - 12:22

   t= objHTTP.responseText;;

;;   - так и должно быть?


  • 0

#3 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 21 апреля 2014 - 12:32

 

   t= objHTTP.responseText;;

;;   - так и должно быть?

вот в этйо строке я допустила ошибку.

   objHTTP.send("client_id="+id+"&redirect_uri="+url+"&client_secret="+secret+"&code=token&grant_type=authorization_code"); 

но результат тот же. server error

 

да, JS не ругается на точку с запятой. ее можно не ставить, вроде.

вот в этйо строке я допустила ошибку.

   objHTTP.send("client_id="+id+"&redirect_uri="+url+"&client_secret="+secret+"&code=token&grant_type=authorization_code"); 

но результат тот же. server error


  • 0

#4 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 21 апреля 2014 - 12:53

Насколько я понимаю из документации, сначало надо сделать GET для получения authorization code:

https://login.live.com/oauth20_authorize.srf?client_id=CLIENT_ID&scope=SCOPES&response_type=code&redirect_uri=REDIRECT_URL

А потом уже POST для получения токена.

Вот в этом примере тоже сначала GET, а потом POST.


  • 0

#5 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 21 апреля 2014 - 13:03

Насколько я понимаю из документации, сначало надо сделать GET для получения authorization code:

https://login.live.com/oauth20_authorize.srf?client_id=CLIENT_ID&scope=SCOPES&response_type=code&redirect_uri=REDIRECT_URL

А потом уже POST для получения токена.

Вот в этом примере тоже сначала GET, а потом POST.

да, у меня есть уже код. а вот по нему по какой-то причине не получается получить token. возварщается server error.


  • 0

#6 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 21 апреля 2014 - 13:34

вопрос снимается. я разобралась.

всем спасибо


  • 0

#7 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 21 апреля 2014 - 14:35

вопрос снимается. я разобралась.

всем спасибо

 

irinamir, а не поделитесь решением? :) Интересно же.


  • 0

#8 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 22 апреля 2014 - 05:38

Конечно :)

Как работает авторизацмия на One Drive.

1)Получаем autorization code запросом get

2)По autorization code получаем autor token и access token

3)По access token можно обновить autor token, когда он устареет

 

Мне нужно было обновить access token. 

В документации не было запроса на обновление токена: http://msdn.microsof...e/hh243641.aspx

в итоге я передавала запрос с неверными параметрами.

я передавала:    

objHTTP.send("client_id=id&redirect_uri=url&client_secret=secret&code=token&grant_type=authorization_code"); 

а для обновления токена нужно было отправить:    

objHTTP.send("client_id=id&redirect_uri=url&client_secret=secret&refresh_token=token&grant_type=refresh_token"); 

 

всем спасибо за помощь :)


  • 1


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных