获取Adobe Sign访问令牌以进行服务器到服务器身份验证

时间:2017-01-06 12:52:50

标签: adobe echosign

我目前正在尝试构建一个后端系统,即没有用户界面可以使用Echosign将文档发送出去进行签名。

配置Oath令牌的页面需要重定向URL,但显然我的应用程序没有UI,因此也没有重定向URL。

显然,我现在可以深入了解整个OAuth世界,但我希望能够快速使用他们的API,而无需先了解OAuth的所有细节。所有样本似乎都基于Web界面场景,但对我来说并非如此。

任何指针都会受到赞赏。

3 个答案:

答案 0 :(得分:2)

我过去能够做这样的事情的唯一方法是首先遵循默认的身份验证过程,然后一旦有了访问令牌,就可以创建一个每30分钟运行一次的cron任务。在访问令牌过期之前刷新它。

只要cron任务继续运行,您将始终拥有有效的访问令牌,并且无需通过登录/重定向URL过程。

答案 1 :(得分:2)

_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。

答案 2 :(得分:0)

我会联系Adobe支持。他们可以在您的Adobe Sign帐户中启用集成密钥,以便您可以使用与后端系统集成的静态密钥集成,而不是OAUTH。