2016-11-16 10 views
2

PHPにTwilio SMS APIを統合しました。そしてコードはGoDaddyのホスティングに取り組んでいます。しかし、ローカルのXAMPPで作業していません。私はオープンネットワークを使用するとうまくいきます。しかし、企業ネットワークの下では失敗している。ファイアーウォールに開けるポートやIPはありますか?使用されるコードは次のとおりです。Twilio SMS APIがXAMPPで例外をスローするのに失敗しました。

require_once ("inc/Services/Twilio.php"); 
$strFromNumber = "+44xxxxxxxx"; 
$strToNumber = "+94xxxxxxxx"; 
$strMsg = "SMS test from twilio :".date('Y-m-d H:i:s'); 
$aryResponse = array(); 

$AccountSid = "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx15"; 
$AuthToken = "0bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb1"; 

$objConnection = new Services_Twilio($AccountSid, $AuthToken); 

try { 

    $bSuccess = $objConnection->account->sms_messages->create($strFromNumber,$strToNumber,$strMsg); 

} catch (Services_Twilio_RestException $e) { 

    echo $e->getMessage(); 

} 

$aryResponse["SentMsg"] = $strMsg; 
$aryResponse["Success"] = true; 

echo json_encode($aryResponse); 

エラーがローカルマシンに表示されます。

Fatal error: Uncaught exception 'Services_Twilio_TinyHttpException' with message 'SSL certificate problem: self signed certificate in certificate chain' in C:\xampp\htdocs\SMS\inc\Services\Twilio\TinyHttp.php:84 Stack trace: #0 C:\xampp\htdocs\SMS\inc\Services\Twilio.php(112): Services_Twilio_TinyHttp->__call('post', Array) #1 C:\xampp\htdocs\SMS\inc\Services\Twilio.php(112): Services_Twilio_TinyHttp->post('/2010-04-01/Acc...', Array, 'From=%2B4474813...') #2 C:\xampp\htdocs\SMS\inc\Services\Twilio\ListResource.php(89): Services_Twilio->createData('Accounts/AC6133...', Array) #3 C:\xampp\htdocs\SMS\inc\Services\Twilio\CachingDataProxy.php(115): Services_Twilio_ListResource->createData('AC6133e1339b600...', Array) #4 C:\xampp\htdocs\SMS\inc\Services\Twilio\Resource.php(44): Services_Twilio_CachingDataProxy->createData('SMS/Messages', Array) #5 C:\xampp\htdocs\SMS\inc\Services\Twilio\ListResource.php(59): Services_Twilio_Resource->createData('SMS/Messages', Array) #6 C:\xampp\htdocs\SMS\inc\Services\Twilio\Rest\SmsMessages. in C:\xampp\htdocs\SMS\inc\Services\Twilio\TinyHttp.php on line 84 

ローカルウィンドウベースのXAMPPでこの問題を解決するにはどうすればよいですか?制限されたネットワークでこのサービスを許可するには、ポートまたはIPを開く必要がありますか?

答えて

1

isueはここに文書化されています https://support.twilio.com/hc/en-us/articles/235279367-Twilio-PHP-helper-library-SSL-certificate-problem-on-Windows

Windows上php_curlライブラリとの問題があります。 CAルート証明書の最新リストは使用しません。カールサイトからルート証明書のpemファイルを取得することができます。 https://curl.haxx.se/ca/cacert.pem

  • コピーCにこのファイル:\ CERT \ cacert.pemの

  • を開き、次のPEMファイルをダウンロード

    1. は、次のことを試してみてくださいこの問題を解決するにはあなたの好きなエディタ(see here)にあるphp.iniファイル

    2. e設定文字列:curl.cainfoがphp.iniに存在する場合は、「;」を削除してコメントを外してください。そして例えば、あなたがダウンロードしたcacert.pemのファイルを指すようにするために、パスを変更します。

      ;;;;;;;;;;;;;;;;;;; 
      ; Module Settings ; 
      ;;;;;;;;;;;;;;;;;;; 
      
      curl.cainfo=c:\cert\cacert.pem 
      
    3. (!非常に重要な)変更を適用するために、あなたのApacheやIISサービスを再起動してください

    それを試してみてください、それがあなたのために働く場合は私に知らせてください。

  • +0

    オープンネットワークで動作します。しかし、私の会社のネットワークの下では、それは機能していません。ファイアウォール内の任意のIPまたはポートを開く必要がありますか? – sugunan

    +1

    @sugunanあなたの会社は、SSLトラフィックを復号化するプロキシを使用している可能性があります。あなたが使用しているCA証明書を入手し、ここの答えに記載されている 'cacert.pem'ファイルに追加する必要があります(ファイルの最後に内容をコピー/ペーストするだけです)。バイナリファイル(例:der、p7b、またはpfx)を提供している場合は、標準PEM(https://www.sslshopper.com/ssl-converter.html)に変換できます。 – dprothero

    関連する問題