「SocialConnect/Auth」においてTwitter API利用時にcURLを用いた通信時に「Bad Request」
SNSでのログイン実装時に有益と思われる「SocialConnect/Auth」です。
問題
Twitterでの認証を行おうとするとAPIから「Bad Request」と返却されてしまいました。他のSNSプロバイダ(Twitterの他に今回実装したのはFacebookとGoogle)は問題がなく成功する。
環境: CentOS Linux release 7.9.2009 (Core)
検証
SocialConnectの挙動を追っているとどうやらcURLを用いた通信時に問題が発生している模様でした。
開発環境のcRULが古かったのか発生しませんでしたが他のCentOS 7のサーバ検証したところ
- 開発環境: ver.7.19.7 → OK
- 稼働環境: ver.7.29.0 → NG
- 手持ちのMac: ver.7.64.1 → OK
という状況だっため7.29.0を最新版にアップデートすることにしました。
対策
yumでパッケージ管理しているためupdatesからは最新にできないため、別途リポジトリを追加してアップデートしました。
実行コマンド
rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/city-fan.org-release-2-1.rhel7.noarch.rpm yum install libcurl libcurl-devel --enablerepo=city-fan.org
「libcurl」がアップデートされることで依存関係があるパッケージもアップデートされます。アップデート後にhttpdをrestartしてもPHP側でcURLのバージョンが最新に反映されなかったので致し方なくサーバ自体を再起動しましたが、このあたりは再起動を要さなくてもいいのかもしれません。(未検証)
Gitの方でもissueが上がっていたりしていないのでworkaroundなのかもしれませんが、以上の対応でSocialConnectを用いてTwitterログインが正常に行えるようになりました。