1

FacebookConnectをアプリケーションに統合しています。Facebook Official SDK( http://github.com/facebook/php-sdk )を使用するのが最善の方法だと思いました。これは、FBDeveloperswikiで宣伝されているためです。

しかし、私はそれをうまく機能させることができませんでした。APIコードを調査するとき、CURLOPT_SSL_VERIFYPEERパラメーターに関する以前の経験を思い出しました。このパラメーターのデフォルト値は「true」であり、APIでは設定されておらず、暗黙的にtrueとして設定されています。

CURLOPT_SSL_VERIFYPEERパラメーターをfalseに変更し、問題が解決しました。これをtrueとして使用すると、/ get /meクエリのGraphAPIから取得できるのは「boolean(false)」でしたが、CURLOPT_SSL_VERIFYPEERパラメーターをfalseに設定すると、同じcurlクエリでユーザーjsonオブジェクトが得られました。

ここで質問したいのは、「CURLOPT_SSL_VERIFYPEER」パラメーターがfalseに設定されているためにFacebookPHPSDKを使用した場合の副作用は何ですか。より一般的には、ピア検証なしでcurlセッションを開始するのは理にかなっていますか。

4

2 に答える 2

2

PHP のインストールに問題があります。ほとんどの場合、SSL 証明書の検証に必要な ENTRUST 中間証明書がありません。これは彼らの証明書チェーンです。

Certificate chain
 0 s:/C=US/ST=California/L=Palo Alto/O=Facebook, Inc./CN=*.facebook.com
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance CA-3
 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance CA-3
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
 2 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
   i:/C=US/O=Entrust.net/OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Secure Server Certification Authority

CURLOPT_SSL_VERIFYPEER を false に設定すると、証明書のチェックが無効になります。本番環境でそれを行うべきではありません。

于 2010-05-20T20:43:12.113 に答える
-3

これを試してください、それは私のために問題を解決しました

Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;

于 2010-09-18T12:22:08.620 に答える