2016-07-14 1 views
0

Я использую accountright Live api v2 by MYOB. Я хочу получить токен доступа, не войдя в экран входа в систему. Когда я отправляю запрос CURL для получения токена доступа, я перенаправлен на экран входа в myob, как пропустить это? Запрос я посылаю это URL:Myob - AccountRight Live Api v2 Пропустить экран входа в систему

«https://secure.myob.com/oauth2/v2/authorize»

и PARAMS посланные являются:

Array 
(
    [client_id] => xxxxxxxxxxxxxxxxxxxxxxxx 
    [client_secret] => xxxxxxxxxxxxxxxxxxxxx 
    [scope] => CompanyFile 
    [code] => XXXXXXXXXXXXXX 
    [redirect_uri] => http://myappcodeonmydomain.com 
    [grant_type] => authorization_code 
) 
+0

Вы когда-нибудь находили решение этого вопроса? – M0rty

+0

Да, см. Принятый ответ ниже. Так работает поток. Вам просто нужно войти в систему в первый раз, а затем просто использовать токен обновления каждый раз. – Passionate

ответ

0

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

Из Освежающий в раздел Доступ лексемы в Authentication Documentation: маркеры доступа

имеют ограниченный срок службы, и когда вы получите тот, который вы будете также получить истечения времени для него и токен обновления , Как только ваш токен доступа истекает, он больше не может использоваться для доступа к API. Итак, вам нужно вызвать обновление. Вы можете сделать это Размещая следующие параметры:

'client_id' // your API Key 
'client_secret' // your API Secret 
'refresh_token' // your refresh token 
'grant_type' // this should say refresh_token 

Для этого URL: https://secure.myob.com/oauth2/v1/authorize

Примечание: в то время как данные отформатированы в URL строки запроса вы не передавать информацию через URL (что бы запрос GET), вы должны передать строку запроса в тела и POST это https://secure.myob.com/oauth2/v1/authorize

В качестве примера я сохраняю токены и обновляю токены в базе данных вместе с ожидаемым временем истечения 10 минут в будущем. Если после этого будет сделан запрос, я вызываю процедуру обновления, чтобы обновить токен доступа, и могу продолжить свой весёлый путь, не требуя каждый раз показывать приглашение для входа.

Вам нужно, чтобы он показывался хотя бы один раз, чтобы узнать, какой пользователь входит в систему, и идентификатор GUID файла компании для подключения.

0

Если вы говорите об авторизации в первый раз, тогда нет способа сделать это. Вы должны перенаправить пользователя на страницу входа, вернув URL-адрес. Если вы говорите об обновлении токена, то это легко. Я не уверен, как вы реализуете API-соединение. Я использую myob ruby ​​sdk. Ruby sdk настолько прост в использовании, что он сделает все эти операции auth для вас. :)

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