リンクイン用の spring-social-api にいくつか問題があります。60 日後にアクセス トークンの有効期限が切れ、それを使用してアクセス トークン ユーザーのタイムラインに投稿できません。この間違いを渡す方法はありますか?
1 に答える
http://forum.springsource.org/showthread.php?138943-Linkedin-refresh-accesstokenからの回答を繰り返します:
正直なところ、LinkedIn で試したとは言えませんが、(ConnectionRepository を介して) 接続を取得し、その上で refresh() を呼び出すことができるはずです。実際、これは OAuth2 で保護されたすべての API で動作するはずです (ただし、OAuth2 仕様に完全に対応していない Facebook は除きます)。
最近まで、Spring Social は OAuth 1.0a 認証を介して LinkedIn と連携していたため、LinkedIn ではまだ試していません。しかし、テストするのは良いことのように思えます。
したがって、Spring Social はアクセス トークンの更新をサポートします。ただし、(1) ExpiredAuthorizationException をキャッチし、(2) ConnectionRepository を使用して Connection を取得し、(3) refresh() を呼び出して接続を更新するのは、手動の作業です。
さらに素晴らしいのは、Spring Social が何らかの方法でその ExpiredAuthorizationException をキャッチし、自動的に refresh() を呼び出してから、例外をトリガーした呼び出しを再試行することです。発信者にとってシームレスになります。それは私が熟考してきたことですが、まだ実装されていません。
考えられる解決策の 1 つはアスペクトです。ただし、アプリケーションが使用している API バインディング タイプ (LinkedInTemplate など) を適切にラップするように、開発者が構成する必要があります。私が考えている別のオプションは、AbstractOAuth2ApiBinding を掘り下げて、その例外を処理するために公開する RestTemplate を構成することです。それが機能するかどうかは少し不明ですが、機能する場合、AbstractOAuth2ApiBinding を拡張する API バインディングは自動的に更新機能を取得します... ただし、OAuth2 ルールに従っていない Facebook は除きます。