我目前正在尝试构建一个后端系统,即没有用户界面应该使用 Echosign 发送文档以供签名。
用于配置 Oath 令牌的页面需要重定向 URL,但显然我的应用程序没有 UI,因此也没有重定向 URL。
显然,我现在可以深入研究整个OAuth世界,但我希望快速使用他们的API,而无需先了解OAuth的所有细节。所有示例似乎都基于 Web 界面场景,但对我来说并非如此。
任何指示将不胜感激。
我过去能够做这样的事情的唯一方法是最初遵循默认的身份验证过程,然后一旦您拥有访问令牌,您就可以创建一个 cron 任务,该任务每运行一次 30 分钟以在访问令牌过期之前刷新您的访问令牌。
只要 cron 任务继续运行,您将始终拥有有效的访问令牌,并且不需要经历登录/重定向 url 过程。
我会联系Adobe支持。他们可以在您的 Adobe Sign 帐户中启用集成密钥,以便您与静态密钥集成,您可以使用静态密钥与后端系统集成,而不是 OAUTH。
_bananabread的想法是正确的。按照本网站上的步骤操作:
https://www.adobe.io/apis/documentcloud/sign/docs/step-by-step-guide/get-the-access-token.html
在你对refresh_token做出 JSON 响应之前,这就是你所需要的。
接下来,您需要发出刷新令牌请求,该请求会在每次需要使用令牌时刷新令牌,并返回全新的 OAuth 令牌。
下面是一个 Java 代码片段,它将刷新您获取的令牌:
HttpResponse response = null;
String access_token = "";
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost request = new HttpPost("http://api.echosign.com/oauth/refresh?"+
"refresh_token=tokenYouJustGot&" +
"client_id=clientIdUsedInPreviousSteps&"+
"client_secret=clientSecretUsedInPreviousStep"+
"grant_type=refresh_token");
request.addHeader("content-type", "application/x-www-form-urlencoded");
response = httpClient.execute(request);
String json = EntityUtils.toString(response.getEntity());
JSONObject jobj = new JSONObject(json);
access_token = jobj.getString("access_token");
access_token字符串现在将包含一个全新的OAuth访问令牌,您可以将其用于任何请求,即POST或GET。