【发布时间】:2018-07-09 18:16:52
【问题描述】:
一点背景知识:我正在尝试使用 Clojure 做一个 API,它会请求用户允许阅读他/她的电子邮件,然后执行查询以呈现有序数据。
为此,我正在尝试将 Gmail Java API 与现有令牌一起使用。
使用documentationavailable,我能够发出获取新令牌的请求,但是我不知道如何使用之前检索到的令牌创建com.google.api.services.gmail 的实例。
我的相关代码如下所示:
(ns linelos.gmail.core
(:import (com.google.api.client.extensions.jetty.auth.oauth2 LocalServerReceiver)
(com.google.api.client.googleapis.auth.oauth2 GoogleAuthorizationCodeFlow
GoogleClientSecrets
GoogleAuthorizationCodeFlow$Builder)
(com.google.api.client.auth.oauth2 Credential BearerToken TokenResponse)
(com.google.api.client.googleapis.javanet GoogleNetHttpTransport)
(com.google.api.client.http HttpTransport)
(com.google.api.services.gmail Gmail Gmail$Builder)))
(def ^:private http-transport
(GoogleNetHttpTransport/newTrustedTransport))
(def ^:private json-factory (JacksonFactory/getDefaultInstance))
(defn get-connection [access-token]
(let [token-response (-> (TokenResponse.) (.setAccessToken access-token))
credential (-> (Credential. (BearerToken/authorizationHeaderAccessMethod))
(.setFromTokenResponse token-response))
; I'm stuck here
gmail-builder (Gmail$Builder. http-transport json-factory ???)
gmail (-> gmail-builder
(.setApplicationName app-name)
.build)]
gmail))
我是否缺少其他东西,例如使用令牌创建请求的助手?
【问题讨论】:
标签: java clojure oauth-2.0 gmail-api clojure-java-interop