Scrapdiary

DesigningとEngineeringの架け橋

「SocialConnect/Auth」においてTwitter API利用時にcURLを用いた通信時に「Bad Request」

SNSでのログイン実装時に有益と思われる「SocialConnect/Auth」です。

socialconnect.lowl.io

github.com

問題

Twitterでの認証を行おうとするとAPIから「Bad Request」と返却されてしまいました。他のSNSプロバイダ(Twitterの他に今回実装したのはFacebookGoogle)は問題がなく成功する。

環境: 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からは最新にできないため、別途リポジトリを追加してアップデートしました。

qiita.com

実行コマンド
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ログインが正常に行えるようになりました。