Postgresql 使用项目id访问processmaker中的数据库连接列表

Postgresql 使用项目id访问processmaker中的数据库连接列表,postgresql,processmaker,Postgresql,Processmaker,我正在ProcessMaker3.0中开发RESTAPI。其中我想使用位于远程服务器的外部数据库。在is中创建连接时,会出现未经授权的错误。 为了创建数据库连接,我引用了以下链接: 我的代码是 echo "in php script"; $pmServer = "http://127.0.0.1"; //set to your ProcessMaker address $accessToken = isset($_COOKIE['access_token']) ? $_COO

我正在ProcessMaker3.0中开发RESTAPI。其中我想使用位于远程服务器的外部数据库。在is中创建连接时,会出现未经授权的错误。 为了创建数据库连接,我引用了以下链接:

我的代码是

echo "in php script";
    $pmServer = "http://127.0.0.1"; //set to your ProcessMaker address

    $accessToken = isset($_COOKIE['access_token']) ? $_COOKIE['access_token'] : getAccessToken();
    $accessToken = $_COOKIE['access_token'];

    function getAccessToken()
    {
        echo "in getAccessToken function";
    }       

    check_cookie($accessToken);
    check_header($pmServer,$accessToken);


    function check_cookie($accessToken)
    {
        echo "in checkcokkie function";
            /*check cookie expired or not*/
            try{

                if (empty($accessToken) and isset($_COOKIE['access_token']))
                throw new Exception("Internal Server Error 500");   
                }   
            catch(Exception $e) {
                echo 'Message: ' .$e->getMessage();

                }

            try{

                if (empty($accessToken)) { //if the access token has expired
                //To check if the PM login session has expired: !isset($_COOKIE['PHPSESSID'])
                /*header("Location: formLogin.php"); //change to match your login method
                die();*/
                throw new Exception("Internal Server Error 500");

                }
            }
            catch(Exception $e) {
                echo 'Message: ' .$e->getMessage();
                //header('location: formLogin.php');
                }
    }   
/***************************/

    function check_header($pmServer,$accessToken)
    {

        echo "in check header";
        $ch = curl_init($pmServer . "/api/1.0/workflow/project");
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer " . $accessToken));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $aUsers = json_decode(curl_exec($ch));
        $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);

    try{
        if ($statusCode != 200) {
        if (isset ($aUsers) and isset($aUsers->error))
        echo "Error code:{$aUsers->error->code}\n Message: {$aUsers->error->message}\n";
        else
        echo "Error: HTTP status code: $statusCode\n";
        //header("Location: formLogin.php"); //change to match your login method
        //die();
        throw new Exception("Internal Server Error 500");

            }
        else {
        foreach ($aUsers as $oUser) {

        echo "{$oUser->prj_uid} {$oUser->prj_name}  {$oUser->prj_description} \n";


                    /*displying database connections*//////

                    $aVars = array(
                    "dbs_type" => "PostgreSQL", 
                    "dbs_server" => "192.168.190.79",
                    "dbs_database_name"=> "adani",
                    "dbs_username"=> "postgres",
                    "dbs_password"=> "stp2015",
                    "dbs_port"=> 5434,
                    "dbs_encode"=> "utf8",
                    "dbs_description"=> "Gas project"
                    );

                    /*prj_id="2146606445739a4aba0fc12089436797";  dbs_id="8728332515739af251ccf86002880169"*/ 


                            echo "<br/>";
                            $prj_id = $aUsers->prj_uid;
                            $ch = curl_init($pmServer . "/api/1.0/workflow/project/$prj_id/database-connection");


                            curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer". $accessToken)); 
                            curl_setopt($ch, CURLOPT_POST, 1); 
                            curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($aVars));
                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                            $aUsers = json_decode(curl_exec($ch)); 
                            $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                            curl_close($ch);

                            try{

                            if ($statusCode != 201) {
                            if (isset ($aUsers) and isset($aUsers->error))
                            echo "Error code:{$aUsers->error->code}\n Message: {$aUsers->error->message}\n";
                            else
                            echo "Error: HTTP status code: $statusCode\n";
                            //header("Location: formLogin.php"); //change to match your login method
                            //die();
                            throw new Exception("Internal Server Error 500");

                            }
                            else {
                            foreach ($aUsers as $oUser) {

                            echo "{$oUser->dbs_uid} {$oUser->dbs_type} \n";

                                    }
                                }
                            }
                            catch(Exception $e) {
                            echo 'Message: ' .$e->getMessage();
                            //header('location: formLogin.php');
                            }                   

                    /************************************/      
                }
            }
    }
    catch(Exception $e) {
        echo 'Message: ' .$e->getMessage();
        header('location: formLogin.php');
        }

    }   ?>      
echo“在php脚本中”;
$pmServer=”http://127.0.0.1"; //设置为ProcessMaker地址
$accessToken=isset($\u COOKIE['access\u token'])$_COOKIE['access_token']:getAccessToken();
$accessToken=$\u COOKIE['access\u token'];
函数getAccessToken()
{
echo“在getAccessToken函数中”;
}       
检查cookie($accessToken);
检查_头($pmServer,$accessToken);
函数检查\u cookie($accessToken)
{
echo“在checkcokkie函数中”;
/*检查cookie是否过期*/
试一试{
if(空($accessToken)和isset($\u COOKIE['access\u token']))
抛出新异常(“内部服务器错误500”);
}   
捕获(例外$e){
回显“消息:”。$e->getMessage();
}
试一试{
if(空($accessToken)){//如果访问令牌已过期
//要检查PM登录会话是否已过期:!isset($\u COOKIE['PHPSESSID'])
/*header(“Location:formLogin.php”);//更改以匹配您的登录方法
模具()*/
抛出新异常(“内部服务器错误500”);
}
}
捕获(例外$e){
回显“消息:”。$e->getMessage();
//标题('location:formLogin.php');
}
}   
/***************************/
函数检查\u头($pmServer,$accessToken)
{
回显“在检查标题中”;
$ch=curl_init($pmServer./api/1.0/workflow/project”);
curl_setopt($ch,CURLOPT_HTTPHEADER,数组(“授权:承载”。$accessToken));
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$aUsers=json_decode(curl_exec($ch));
$statusCode=curl\u getinfo($ch,CURLINFO\u HTTP\u代码);
卷曲关闭($ch);
试一试{
如果($statusCode!=200){
if(isset($aUsers)和isset($aUsers->error))
echo“错误代码:{$aUsers->Error->code}\n消息:{$aUsers->Error->Message}\n”;
其他的
echo“错误:HTTP状态代码:$statusCode\n”;
//header(“Location:formLogin.php”);//更改以匹配您的登录方法
//模具();
抛出新异常(“内部服务器错误500”);
}
否则{
foreach($aUsers作为$oUser){
echo“{$oUser->prj_-uid}{$oUser->prj_-name}{$oUser->prj_-description}\n”;
/*显示数据库连接*//////
$aVars=数组(
“dbs_type”=>“PostgreSQL”,
“dbs_服务器”=>“192.168.190.79”,
“dbs_数据库_名称”=>“adani”,
“dbs_用户名”=>“postgres”,
“dbs_密码”=>“stp2015”,
“dbs_端口”=>5434,
“dbs_编码”=>“utf8”,
“dbs_说明”=>“天然气项目”
);
/*prj_id=“2146606445739A4 ABA0FC12089436797”;dbs_id=“87283325739AF251CF86002880169”*/
回声“
”; $prj_id=$aUsers->prj_id; $ch=curl_init($pmServer./api/1.0/workflow/project/$prj_id/database connection”); curl_setopt($ch,CURLOPT_HTTPHEADER,数组(“授权:承载”。$accessToken)); 卷曲设置($ch,卷曲设置桩,1); curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($aVars)); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); $aUsers=json_decode(curl_exec($ch)); $statusCode=curl\u getinfo($ch,CURLINFO\u HTTP\u代码); 卷曲关闭($ch); 试一试{ 如果($statusCode!=201){ if(isset($aUsers)和isset($aUsers->error)) echo“错误代码:{$aUsers->Error->code}\n消息:{$aUsers->Error->Message}\n”; 其他的 echo“错误:HTTP状态代码:$statusCode\n”; //header(“Location:formLogin.php”);//更改以匹配您的登录方法 //模具(); 抛出新异常(“内部服务器错误500”); } 否则{ foreach($aUsers作为$oUser){ echo“{$oUser->dbs_-uid}{$oUser->dbs_-type}\n”; } } } 捕获(例外$e){ 回显“消息:”。$e->getMessage(); //标题('location:formLogin.php'); } /************************************/ } } } 捕获(例外$e){ 回显“消息:”。$e->getMessage(); 标题('location:formLogin.php'); } } ?>
它给我以下错误,如图所示

我正在添加这个RESTAPI并创建一个数据库函数,但它不显示任何连接列表。 如何显示连接列表以及如何创建到外部数据库的数据库连接