Update ali api flow - part 3

pull/69/head
FongMi 3 years ago
parent dac8c20afb
commit dcabc66a01
  1. 25
      app/src/main/java/com/github/catvod/ali/API.java

@ -125,11 +125,12 @@ public class API {
return headers;
}
private String alist(String url, JSONObject body) throws Exception {
url = "https://api.nn.ci/alist/ali_open/" + url;
private boolean alist(String url, JSONObject body) {
OkResult result = OkHttp.postJson(url, body.toString(), getHeader());
SpiderDebug.log(result.getCode() + "," + url + "," + result.getBody());
return result.getBody();
if (isManyRequest(result.getBody())) return false;
oauth = OAuth.objectFrom(result.getBody()).save();
return true;
}
private String post(String url, JSONObject body) {
@ -206,7 +207,7 @@ public class API {
}
}
private void oauthRequest() {
private boolean oauthRequest() {
try {
SpiderDebug.log("OAuth Request...");
JSONObject body = new JSONObject();
@ -214,37 +215,35 @@ public class API {
body.put("scope", "user:base,file:all:read,file:all:write");
String url = "https://open.aliyundrive.com/oauth/users/authorize?client_id=" + BuildConfig.CLIENT_ID + "&redirect_uri=https://alist.nn.ci/tool/aliyundrive/callback&scope=user:base,file:all:read,file:all:write&state=";
String result = auth(url, body.toString(), true);
oauthRedirect(Code.objectFrom(result).getCode());
return oauthRedirect(Code.objectFrom(result).getCode());
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
private void oauthRedirect(String code) {
private boolean oauthRedirect(String code) {
try {
SpiderDebug.log("OAuth Redirect...");
JSONObject body = new JSONObject();
body.put("code", code);
body.put("grant_type", "authorization_code");
String result = alist("code", body);
if (isManyRequest(result)) return;
oauth = OAuth.objectFrom(result).save();
return alist("https://api.nn.ci/alist/ali_open/code", body);
} catch (Exception e) {
e.printStackTrace();
oauth.clean().save();
return false;
}
}
private boolean refreshOpenToken() {
try {
if (oauth.getRefreshToken().isEmpty()) return oauthRequest();
SpiderDebug.log("refreshOpenToken...");
JSONObject body = new JSONObject();
body.put("grant_type", "refresh_token");
body.put("refresh_token", oauth.getRefreshToken());
String result = alist("token", body);
if (isManyRequest(result)) return false;
oauth = OAuth.objectFrom(result).save();
return true;
return alist("https://api.nn.ci/alist/ali_open/token", body);
} catch (Exception e) {
e.printStackTrace();
oauth.clean().save();

Loading…
Cancel
Save