« ドキドキ!プリキュア 第 48 話 | トップページ | PR-400MI の VPN 機能を試してみた »

2014/01/26

【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 です。

« ドキドキ!プリキュア 第 48 話 | トップページ | PR-400MI の VPN 機能を試してみた »

カテゴリー

無料ブログはココログ