09-06-2017 12:33 AM
Hi, I'm using xml API in php to insert a meeting in my application. I've taken the sample page available on the link
https://developer.cisco.com/site/webex-developer/develop-test/xml-api/sample-code/
unfortunately the result is always:
HTTP / 1.1 400 Bad Request
Date: Wed, 06 Sep 2017 07:25:38 GMT
Server: Apache
Content-Length: 28
Connection: close
Content-Type: text / html; charset = iso-8859-1
Http / 1.1 Service Unavailable
I think I have not realized which credentials are included in the webExID and password fields
I insert those with which I access my webwex site
mysite.webex.com
with which I also use the $ XML_SITE field
$XML_SITE="mysite.webex.com"
Can anyone help me to understand?
Thank you so much!
Angela
Solved! Go to Solution.
09-06-2017 11:17 AM
The sample code for PHP is faulty and no longer functional, it has a malformed header that is getting rejected (should have \r\n terminations and it does not).. here is a newer example that does not attempt to make its own HTTP Headers.
<?php
header("Content-Type: text/xml");
$sitename = "apidemoeu"; //Sitename is the subdomain of a WebEx URL. ex: sitename for https://apidemoeu.webex.com is apidemoeu
$username = "username";
$password = "password";
$XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$XML .="<serv:message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">";
$XML .=" <header>";
$XML .=" <securityContext>";
$XML .=" <webExID>$username</webExID>";
$XML .=" <password>$password</password>";
$XML .=" <siteName>$sitename</siteName>";
$XML .=" <returnAdditionalInfo>TRUE</returnAdditionalInfo>";
$XML .=" </securityContext>";
$XML .=" </header>";
$XML .=" <body>";
$XML .=" <bodyContent xsi:type=\"java:com.webex.service.binding.site.GetSite\">";
$XML .=" </bodyContent>";
$XML .=" </body>";
$XML .="</serv:message>";
$request = stream_context_create(array("http"=>array("method"=>"POST","header"=>"Content-Type:text/xml","content"=>$XML)));
$response = file_get_contents("https://$sitename.webex.com/WBXService/XMLService", false, $request);
echo $response;
?>
09-06-2017 11:17 AM
The sample code for PHP is faulty and no longer functional, it has a malformed header that is getting rejected (should have \r\n terminations and it does not).. here is a newer example that does not attempt to make its own HTTP Headers.
<?php
header("Content-Type: text/xml");
$sitename = "apidemoeu"; //Sitename is the subdomain of a WebEx URL. ex: sitename for https://apidemoeu.webex.com is apidemoeu
$username = "username";
$password = "password";
$XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$XML .="<serv:message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">";
$XML .=" <header>";
$XML .=" <securityContext>";
$XML .=" <webExID>$username</webExID>";
$XML .=" <password>$password</password>";
$XML .=" <siteName>$sitename</siteName>";
$XML .=" <returnAdditionalInfo>TRUE</returnAdditionalInfo>";
$XML .=" </securityContext>";
$XML .=" </header>";
$XML .=" <body>";
$XML .=" <bodyContent xsi:type=\"java:com.webex.service.binding.site.GetSite\">";
$XML .=" </bodyContent>";
$XML .=" </body>";
$XML .="</serv:message>";
$request = stream_context_create(array("http"=>array("method"=>"POST","header"=>"Content-Type:text/xml","content"=>$XML)));
$response = file_get_contents("https://$sitename.webex.com/WBXService/XMLService", false, $request);
echo $response;
?>
09-08-2017 06:12 AM
Hi Hunt,
Thank you for the reply. Unfortunately, this code also returns an error:
This page contains the following errors:
error on line 2 at column 1: Additional content at the end of the document
Below is the rendering of the page up to the first error.
I copied your code and modified only the sitename, username and password parameters....
I can not really understand why!
09-11-2017 04:24 AM
Hi Hunt,
in the weekend I tried and tried .... I was able to turn on the connection, so I no longer have the error.
I'm using the following code:
<html>
<head>
<title>Test XML API</title>
</head>
<body>
<?php
$XML_PORT="443";
//user information
$UID = "myUserId"; // WebEx username
$PWD = "myPassword"; // WebEx password
$siteName= "MysiteName WebEx"; // SiteName
// Build XML request document
$d["XML"] = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$d["XML"] .= "<serv:message xmlns:xsi=\"http://www.w3.org/2001/XMLSchemainstance\"";
$d["XML"] .= "xmlns:serv=\"http://www.webex.com/schemas/2002/06/service\"";
$d["XML"] .= "xsi:schemaLocation=\"http://www.webex.com/schemas/2002/06/service";
$d["XML"] .= "http://www.webex.com/schemas/2002/06/service/service.xsd\">";
$d["XML"] .= " <header>";
$d["XML"] .= " <securityContext>";
$d["XML"] .= " <webExID>$UID</webExID>";
$d["XML"] .= " <password>$PWD</password>";
$d["XML"] .= " <siteName>$siteName</siteName>";
$d["XML"] .= " <returnAdditionalInfo>TRUE</returnAdditionalInfo>";
$d["XML"] .= " </securityContext>";
$d["XML"] .= " </header>";
$d["XML"] .= "<body>";
$d["XML"] .= "<bodyContent xsi:type=\"java:com.webex.service.binding.site.GetSite\">";
$d["XML"] .= "</bodyContent>";
$d["XML"] .= "</body>";
$d["XML"] .= "</serv:message>";
$URL = "https://" . $siteName. ".webex.com/WBXService/XMLService";
$Result = postIt($d,$URL,$XML_PORT);
if (isset($Result["errno"]))
{ // Unable to connect to server
$errno = $Result["errno"];
$errstr = $Result["errstr"];
echo "<hr><B>XML Server Connection Error: $errno </B>$errstr<hr>";
}
else
{ // Server connection made
echo "<br><b>XML Response document</b>";
// Output XML response document
echo("<pre>");
while (list($key, $val) = each($Result))
{
$transval=htmlspecialchars($val);
echo $transval;
}
echo "</pre>";
exit;
}
//
// postIt()
//
// POSTs the XML request document and calling user variables
// to the specified WebEx XML Server and receives
// an XML response document
//
function postIt($DataStream, $URL, $Port)
{
// Strip http:// from the URL if present
$URL = ereg_replace("^https://", "", $URL);
// Separate into Host and URI
$Host = substr($URL, 0, strpos($URL, "/"));
$URI = strstr($URL, "/");
// Form the request body
$ReqBody = "";
while (list($key, $val) = each($DataStream)) {
if ($ReqBody) $ReqBody.= "&";
$ReqBody.= $key."=".urlencode($val);
}
$ContentLength = strlen($ReqBody);
// Generate the request header
//"Content-Type: application/x-www-form-urlencoded\n".
$Request =
"POST $URI HTTP/1.0\n".
"Host: $Host\n".
"User-Agent: PostIt\n".
"Content-Type: application/xml\n".
"Content-Length: $ContentLength\n\n".
"$ReqBody\n";
// Open the connection to the XML Server
$socket = fsockopen($Host, $Port, &$errno, &$errstr);
if (!$socket) { // Server connection error
$Result["errno"] = $errno;
$Result["errstr"] = $errstr;
return $Result;
}
$idx = 0;
// Send XML request request
fputs($socket, $Request);
// Process XML response
while (!feof($socket) && $Result[$idx-1] != "0\r\n")
{
if (substr($Result[$idx-1], 0, 2) == "0\r\n")
echo "The End:".strlen($Result[$idx-1]);
$Result[$idx++] = fgets($socket, 4096);
}
return $Result;
}
?>
</body>
</html>
The problem is that when I send the request the result is a blank page, if I do the dump I see that the response array has only one element with a Bool= False value ...
array(1) { [0]=> bool(false) }
I think I do not have access to my webex site correctly.
Can you help me understand what's going on?
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide