私のアプリケーションは OAuth2 gem (0.1.1) を使用して Facebook に接続し、ActiveMerchant gem (1.12.0) を使用して PayPal に接続します。現在の Rails/Ruby ディストリビューション (3.0.5、1.9.2) では、これらの gem の両方を使用すると、次の OpenSSL::SSL::SSLError がスローされます。
- SSL_connect が返されました = 1 errno = 0 状態 = SSLv3 読み取りサーバー証明書 B: 証明書の検証に失敗しました
掘り下げたところ、2 つのパッチが見つかりました。1つ目は、これを初期化フォルダに「faraday.rb」( http://bit.ly/hZqNwQ )としてプラグインすることです。OAuth2 (Facebook) 側は、このパッチで機能します。ただし、ActiveMerchant (PayPal) コードは依然として同じ SSL_connect エラーをスローします。
私が試した (失敗した) 2 番目のパッチは、「always_verify_ssl_certificates」gem ( http://bit.ly/dXmuUh ) です。私は次のことをしました:(1)Gemfileの宝石「always_verify_ssl_certificates」(2)ApplicationControllerファイルの「always_verify_ssl_certificates」が必要です。ただし、OAuth2 (Facebook) と ActiveMerchant (PayPal) の両方が次の TypeError をスローします。
- 間違った引数 (NilClass)! (予想される OpenSSL::SSL::SSLContext の種類)
私の OAuth2 Facebook コード AuthorizeController と私の ActiveMerchant PayPal (現在の PaymentsController) へのリンクは、以下のコメントにあります。これは、Michael Bleigh による 2010 OAuth2 ガイドと 2008 Cody Fauser ActiveMerchant チュートリアルに従っています。この時点で非常に混乱しています。