Myob - AccountRight Live Api v2跳过登录界面

时间:2016-07-14 08:48:29

标签: oauth myob

我正在使用MYOB的accountright Live api v2。我想获得访问令牌而无需登录屏幕。当我发送CURL请求以获取访问令牌时,我被重定向到myob登录屏幕,如何跳过它?我发送的请求是url:

'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
)

2 个答案:

答案 0 :(得分: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
     

到此网址:https://secure.myob.com/oauth2/v1/authorize

     

注意:虽然数据格式化为URL查询字符串,但您   通过URL传递信息(这将是一个GET请求),你   必须正文 POST 中的查询字符串传递给   https://secure.myob.com/oauth2/v1/authorize

例如,我将访问权限和刷新令牌存储在数据库中,以及将来10分钟的预期到期时间。如果在此之后要进行请求,我会调用刷新过程来更新访问令牌,并且能够以愉快的方式继续进行,而无需每次都显示登录提示。

您需要至少显示一次才能找出正在登录的用户,以及要连接的公司文件的GUID。

答案 1 :(得分:0)

如果你是第一次谈论auth,那么就没办法了。您必须通过返回网址将用户重定向到登录页面。 如果您正在谈论刷新令牌,那么这很容易。 我不确定你是如何实现API连接的。我正在使用myob ruby​​ sdk。 ruby sdk非常易于使用,它将为您完成所有这些auth操作。 :)