Google Oauth2 V4 Java API从客户端ID和客户端机密获取访问令牌,以供计划作业使用

时间:2019-02-22 06:33:13

标签: oauth-2.0 google-calendar-api google-oauth2 google-oauth-java-client

我需要实施计划的任务或作业,该任务或作业将根据日历事件更新我的数据库记录。现在,日历事件的推送通知(webhook)已过期,我将其设置为每周过期。

现在,我需要自动更新这些Webhooks(推送通知),并且将由任务调度程序调用或运行。

我已经对调用API的部分进行了编码,以更新Webhook。我现在唯一的问题是要使用的访问令牌。如果我使用从Google OAuth Playground获得的访问令牌,就可以使用。但是从我的应用程序获取访问令牌无效(获取401错误)。

现在,我在Google oauth游乐场中使用了工作的client idclient secret来生成authorization coderefresh tokenaccess token。 / p>

问题: 如何以编程方式执行此操作?我的意思是使用客户端ID和密码来获取访问令牌?

这是我所做的,但我总是收到401错误:

static {
    try {
        GoogleCredential credential = GoogleCredential.fromStream(GoogleCalendarSupportImpl.class.getResourceAsStream("/google-ta-api-service-account.json"))                                              .createScoped(Arrays.asList(CalendarScopes.CALENDAR));
        credential.refreshToken();
        m_accessToken = credential.getAccessToken();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

我可以获得一个accessToken的值,但是它不起作用(获取401)。

我相信google-ta-api-service-account.json上的帐户与我在oauth Playground中使用的帐户不同。

我有那些值(客户端ID和密码)可以在我想使用的代码中使用,但是我不知道该怎么做。

谢谢!

0 个答案:

没有答案