LinkedIn は最近 API を変更し、第三者が要求する情報をより明確にすることを要求しました。omniauth を使用してユーザーの過去の職歴と学歴にアクセスするには、r_fullprofile パーミッション トークンを渡す必要があります (以前は、過去の職歴または学歴データに対して特定のリクエストを行う必要はありませんでした)。ユーザーの電子メール アドレスにアクセスするには、r_emailaddress パーミッション トークンを渡す必要があります。誰かが尋ねる前に、私は新しい LinkedIn API キーを使用しています (古いキーは最近の変更の影響を受けません)。
omn iauth-linkedin gemは最近、LinkedIn のアクセス許可の変更に対応するために更新されましたが、認証フローのすべての部分でこの新しいスコープ パラメーターを渡す際にまだ問題があります。config/omniauth.rb ファイルを作成するために、omniauth-linkedin の readme に記載されている手順に従っています。
Rails.application.config.middleware.use OmniAuth::Builder do
provider :linkedin, ENV['LINKEDIN_KEY'], ENV['LINKEDIN_SECRET'],
:scope => 'r_fullprofile,r_emailaddress', :fields => ['id', 'email-address', 'first-name', 'last-name', 'headline', 'industry', 'picture-url', 'public-profile-url', 'location', 'positions']
end
スコープは、認証の最初の部分を正常に通過したように見えます。以下の最初のスクリーンショット (YOUR FULL PROFILE...YOUR EMAIL ADDRESS) に表示されています。
ただし、ユーザーが資格情報を入力すると、スコープが失われたように見え、デフォルトの「YOUR PROFILE OVERVIEW」フィールドのみが転送されます。
ユーザーの完全なプロファイルと教育データが必要なので、これに非常にこだわっており、本当に助けが必要です。auth_controller コードを提供する必要がある場合はお知らせください。ありがとうございました。