我正在使用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
)
答案 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操作。 :)