2016-10-10 8 views
0

HTTPセッションを維持しながらOracle Service CloudからカスタムXMLメッセージを送信できますか?PHPコードを使用したサービスクラウドからのHTTPセッション

<?php 

use \Rightnow\Connect\v1_2 as RNCPHP; 
use \Rightnow\CPM\v1 as RNCPM; 

    $url1 = ""; 
    $startInterviewHeaders = array("SOAPAction: http://oracle"); 
    $startInterview; 

    // session 

    //$strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/'; 

    if(!function_exists("\curl_init")){ 
     \load_curl(); 
     echo "curl loaded"; 
    } else { 
     echo "curl already exists "; 
    } 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_COOKIE, $strCookie); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_URL, $url1); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $startInterview); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $startInterviewHeaders); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

    $startInterviewresponse = curl_exec($ch); 
    //echo $response; 

    $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    $curl_errno= curl_errno($ch); 
    echo "</br> HTTP status: " . $http_status . "</br> cURL error: " .$curl_errno . "</br>"; 
    curl_close($ch); // close cURL 
    echo $startInterviewresponse; 


?> 

EDIT:

は、これまでのところ、私はカールを使用して単一のメッセージを送信するために管理している上記のコードは、単一のメッセージを送信し、応答を取得しますが、私はCURLOPT_COOKIEJARとHTTPセッションを維持しようとすると、 CURLOPT_COOKIEFILE、2番目のcURLメッセージの応答では、アクティブなセッションが存在しないことを通知します。

sessions.com.oracle.determinations.server.exceptions.NoActiveInterviewExceptionaction "Investigate" can not be performed without an active interview 

私はセッションを維持するために使用されるコード(のRightNow環境外でテストするときに働いていた)

curl_setopt($ch,CURLOPT_USERAGENT, $useragent); 
    curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie-name'); //could be empty, but cause problems on some hosts 
    curl_setopt($ch, CURLOPT_COOKIEFILE, '/var/www/ip4.x/file/tmp'); //could be empty, but cause problems 

ありがとう!

+0

「クラッシュ」を定義します。どのようなエラー、出力、または結果が得られていますか。 – drew010

+0

rightnow-crm土地では、何も言わない一般的なエラーです。ちょっと遊んだ後、私はcrmで一時ファイルを作ることができないと確信しています。回避策はありますか?セッションに変数を格納することはできますか? – Ward

答えて

1

コードサンプルはカスタムプロセスモデルです。 CPMは永続性を許可せず、CPMが完了すると閉じられます。 1つのCPMから複数のカールコールを実行できますが、これはお勧めできません。 CPMあたり複数のコールが必要な場合は、統合ミドルウェアを使用する必要があります。

このコードを非同期CPMから実行している場合(同期CPMではカールが表示されないため、ここで該当するはずです)、OSvC側のエラーは、 「ローカルテストサーバー」と呼ばれ、エンタープライズ環境ではほとんど常にパブリックインターネットに公開されていません。したがって、あなたの "クラッシュ"は接続エラーである可能性があります。

@ drew010につきましては、この質問の文脈でもエラーを含める必要があります。

+0

私の見ていたエラーは「あなたのリクエストに誤りがありました。そのcpmページを読み込もうとしています。 現在のところ、1つのCPMから複数のカールコールを実行している場合にのみ、私は維持しています。私の2番目のメッセージは、この例外 'sessions.com.oracle.determinations.server.exceptions.NoActiveInterviewExceptionaction' – Ward

+0

'curl_setopt($ ch、CURLOPT_COOKIEJAR、' cookie-name ');' 'curl_setopt($ ch、CURLOPT_COOKIEFILE、' /var/www/ip4.x/file/tmp ')' これらの行は機能していないようです。 アイデアは何ですか? – Ward

+0

CPMはブラウザを使用しないため、Cookieは使用しません。とにかくCPMは状態を維持しないので、結果を変数に保存し、2番目のカールコールで使用し、CPM実行の最後にすべてが破棄されることを期待してください。 –

関連する問題