ユーザーが LinkedIn プロファイルに更新を投稿できるようにする Rails (3.2.11) アプリケーションがあります。現在、omniauth-linkedin
gem を使用して初期ユーザー認証をキャプチャし、gem を使用しlinkedin
て更新を投稿しています。私が抱えている問題は、LinkedIn アクセス トークンが 60 日後に期限切れになることですが、ドキュメントによると、ユーザーがアプリケーションを再承認することなく、有効期限が切れる前にトークンを更新できます。
LinkedIn のヒントとコツ、認証の概要、および StackOverflow に関する多数の投稿 (これ、これ、およびこれはほんの一例です) を見てきましたが、まだ答えが見つかりません。
ユーザーが (経由でomniauth-linkedin
) アプリを承認した後、私は を保存し、access_token
LinkedInsecret
から戻ってきました。access_token
まだ有効なものを使用して更新し、有効期限をさらに 60 日間延長する方法を理解する必要があります。
LinkedIn の認証エンドポイントを使用してみました (tokens.access_token
現在有効なトークンはどこにありますか):
url = "https//www.linkedin.com/uas/oauth/authenticate?oauth_token=" + tokens.access_token
result = RestClient.post(url, {oauth_callback: "http://localhost:3000/users/auth/linkedin/callback"})
しかし、undefined method 'request_uri' for #<URI::Generic:0x1b144d20>
例外が発生します。
OAuth::Consumer クライアントを使用してみました (現在有効なトークンはtokens.access_token
とです):tokens.token_secret
configuration = { site: 'https://api.linkedin.com', authorize_path: '/uas/oauth/authenticate',
request_token_path: '/uas/oauth/requestToken', access_token_path: '/uas/oauth/accessToken' }
consumer = OAuth::Consumer.new(ENV['LINKEDIN_APP_ID'], ENV['LINKEDIN_SECRET'], configuration)
access_token = OAuth::AccessToken.new(consumer, tokens.access_token, tokens.token_secret)
しかし、これは私に同じことaccess_token
を返すだけですsecret
.
omniauth-linkedin
最後に、既存のgem 機能を活用してこの更新を処理できるようにしたいと考えています。ありがとう!