【VC++】liboauth ライブラリを HTTPS 接続対応にする方法
2014/01/26 作成
2014/01/15 頃、Twitter に仕様変更が入り HTTPS 接続が必須となりました。今までは HTTP 接続でも通信可能だったのが不可能となり、Keisuke's TwittPlayNow for WMP がその影響をもろに受けてしまい、緊急アップデートの準備を余儀なくされました。
先日 Keisuke's TwittPlayNow for WMP ユーザーより問い合わせが入って本件が判明し、原因もその時にわかったため、HTTPS 接続で通信するように修正すればよいことはすぐにわかりました。
が、なんと事前にビルドしていた libcurl と liboauth のままでは HTTPS 接続に対応できないことが判明し、先に SSL 対応に加工したうえでリビルドしなければなりませんでした。ただ、クライアント本体自体はコードを一部修正するだけで済んだのが不幸中の幸いでしたね…。
で、liboauth を SSL 接続対応版にするにはまず libcurl を SSL 対応版としてリビルドしなければなりません。こちらはソース コードとセットで Visual Studio シリーズ用のプロジェクト ファイルが付属しているのでこれを開き、プリプロセッサに USE_SSLEAY を付け加えてリビルドすれば OK です。このとき、OpenSSL のパスが通るように設定するのを忘れないでください。(これを忘れるとビルド失敗の原因となります。)
次に liboauth の方も加工しなければならないのは oauth_http.c の 1 ファイルのみです。
加工するといっても、ソース コードの中にあるポスト系、取得系を担う関数の中に curl_easy_setopt() 関数が書かれている部分のところに、
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
を追記し、改めてリビルドするだけです。両方とも Debug 用と Release 用の両方を用意することを忘れないことと、リビルドが終わったら差し替えることを忘れないことが重要です。
あとは差し替え後のデータを用いてプログラムをリビルドし、無事に完了し問題なく動作できれば OK です。
最近のコメント