Facebook は一部の API 呼び出しに application/json ではなく text/plain で応答しているようです。oauth エンドポイントhttps://graph.facebook.com/oauth/access_tokenはその一例です。これは、vert.x oauth クライアントの実装を混乱させるようです。これは失敗する呼び出しです:
oauth2.getToken(new JsonObject()
.put("code", code)
.put("redirect_uri", callbackUrl),
res -> {
if (res.failed()) {
logger.warn(res.cause().getMessage());
} else {
AccessToken = res.result();
// ...etc...
}
ログに記録されたメッセージは次のとおりです。Cannot handle content type: text/plain
だから私の質問は、Facebook プロバイダーのためだけに独自のメソッドを実装するという明白な解決策とは別に、getToken()
実装にプレーンテキストの応答を解析させる他の方法はありますか? 次のような単純な URL エンコード文字列です。access_token=foo&expires=5179336
私が気付いていないJSONでFacebookの回答を作成する方法はありますか?