😎
【Google API】トークン取得時に使用するJacksonFactoryのdeprecate対応(Java/Scala)
概要
以前に紹介した【Google API】GoogleCredentialを使用せず認可コードからcredentialの情報を取得(Java/Kotlin)という記事で、トークン情報を取得する際com.google.api.client.json.jackson2.JacksonFactory
のライブラリが使用したのですが、どうやらこのクラスは2021年12月時点で既にdeprecateになっているようです。
今回はこのJacksonFactory
の代わりに、何を使えば良いのかをメモ書きします。
代替手段
'com.google.api.client.json.jackson2.JacksonFactory' is deprecated. What are my options?の記事にある通り、com.google.api.client.json.GsonFactory
のクラスを使うのが、代替手段だそうです。
JacksonFactoryのドキュメントにも、GsonFactoryを代替として使うように案内されています。
実装サンプル
以前に私が書いた記事のトークン取得処理そのままですが、実装サンプルを記載します。今回はScalaですが特にJavaでもKotlinでも実装内容はほぼ変わらないと思います。
def authByGoogleAuthCode(authCode: String): Unit = {
val clientId = config.getString("google.clientId")
val secret = config.getString("google.secret")
// authCodeからtokenを取得
val req = new GoogleAuthorizationCodeTokenRequest(
new NetHttpTransport(),
GsonFactory.getDefaultInstance(), // ここでJacksonFactoryではなくGsonFactoryを使用する
"https://oauth2.googleapis.com/token",
clientId,
secret,
authCode,
"postmessage"
)
req.setGrantType("authorization_code")
val tokenResponse = req.execute()
Discussion