1

Liveperson REST APIを使用しようとしていますが、次のphpコードを使用しています。

$authorization = "LivePerson appKey=MY_APP_KEY";
$accept = "application/xml";
$contentType = "application/xml";


$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "C:/dev/wamp/exported.crt");

curl_setopt($ch, CURLOPT_URL, "https://dev.liveperson.net/api/account/1234?v=1");
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Authorization: '.$authorization,'Accept: '.$accept,'Content-Type: '.$contentType));
curl_exec($ch);
$response = curl_getinfo( $ch );
var_export($response);
curl_close($ch);

リクエストは失敗しました、私はすでに次のことを試しました

  • php.iniのenabelingopenssl
  • ライブパーソンサーバーから証明書をエクスポートし、コードで使用する
  • ここの指示に従いました

どんな助けでもありがたいです!

4

2 に答える 2

2

getcwd()コードの9行目から削除してみてください。現在の作業ディレクトリからの相対パスであるフルパス「C:/dev/wamp/exported.crt」を使用していますが、これは誤りです。:)

これがそれを解決することを願っています

于 2012-05-01T14:45:45.590 に答える
0

リクエストからCA証明書を削除します。

# curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "C:/dev/wamp/exported.crt");

実際には、ここで認証局(この場合はVeriSign)の公開鍵/証明書ファイルを定義する必要があります。ライブパーソンの証明書は間違いなく間違っています。

証明書が問題の原因であるかどうかを確認します。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

もちろん、この設定はプロジェクトに推奨されるものではありませんが、問題を特定するのに役立つ場合があります。認定プロセスに何らかの責任がある場合は、LivepersonのAPIホストへの接続を成功させる必要があります。

認証プロセスが実際に責任を負っている場合は、[VeriSignの公開ルート証明書]をダウンロードして、CAINFOとして使用してみてください。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_CAINFO, "C:/dev/wamp/verisign_root.crt");
于 2012-05-01T14:50:12.183 に答える