我正在SuiteCRM中尝试我的第一步,并设法安装、添加一些数据并对其进行一些测试。
由于我的目标是通过php使用REST,所以希望连接到应用程序。
我找到了一些例子,但它似乎没有给我任何东西。我能请一位专家为我提供一个良好的起点(或代码),作为通过API从应用程序中读取用户或帐户的示例吗?
我尝试了以下链接:
Module/
然而,给出正确的URL和登录凭据,我甚至连一行都没有。
因此,farI已经做了:
如果有人有任何方法来进一步测试它,请添加评论,因为我想学习。
编辑:
以下是代码:
Print_r(“你好”);-这很管用
$url = "http://http://demo.suiteondemand.com/service/v4_1/rest.php";
$username = "will";
$password = "will";
function call($method, $parameters, $url)
{
ob_start();
$curl_request = curl_init();
curl_setopt($curl_request, CURLOPT_URL, $url);
curl_setopt($curl_request, CURLOPT_POST, 1);
curl_setopt($curl_request, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($curl_request, CURLOPT_HEADER, 1);
curl_setopt($curl_request, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl_request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_request, CURLOPT_FOLLOWLOCATION, 0);
$jsonEncodedData = json_encode($parameters);
$post = array(
"method" => $method,
"input_type" => "JSON",
"response_type" => "JSON",
"rest_data" => $jsonEncodedData
);
curl_setopt($curl_request, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($curl_request);
curl_close($curl_request);
$result = explode("\r\n\r\n", $result, 2);
$response = json_decode($result[1]);
ob_end_flush();
return $response;
}
//login ----------------------------------------
$login_parameters = array(
"user_auth" => array(
"user_name" => $username,
"password" => md5($password),
"version" => "1"
),
"application_name" => "RestTest",
"name_value_list" => array(),
);
$login_result = call("login", $login_parameters, $url);
/*
echo "<pre>";
print_r($login_result); //nothing
echo "</pre>";
*/
//get session id
$session_id = $login_result->id;
//retrieve fields --------------------------------
$get_module_fields_parameters = array(
//session id
'session' => $session_id,
//The name of the module from which to retrieve records
'module_name' => 'Accounts',
//Optional. Returns vardefs for the specified fields. An empty array will return all fields.
'fields' => array(
'id',
'name',
),
);
$get_module_fields_result = call("get_module_fields", $get_module_fields_parameters, $url);
echo "<pre>";
print_r($get_module_fields_result); //nothing again
echo "</pre>";?>
我得到的html源代码是:
hello<pre></pre>点数:
更多信息:
我给演示网站打了电话.帮助,所以我想回到我的网站,没有https,只与http交谈,但这是一个砖墙。请查看我更改的代码:
$url = "http://my_domain.com/suiteCRM/service/v4_1/rest.php";
$username = "user";
$password = "pass";
function call($method, $parameters, $url)
{
ob_start();
$curl_request = curl_init();
curl_setopt($curl_request, CURLOPT_URL, $url);
curl_setopt($curl_request, CURLOPT_POST, 1);发布于 2018-01-01 12:03:27
啊,从没想过这会是个问题,但你错了。检查您的URL是否为rest端点。你需要用合适的结构来指出它。以下是更新的代码(对我来说很好):
$url = "https://demo.suiteondemand.com/service/v4_1/rest.php";
$username = "will";
$password = "will";
function call($method, $parameters, $url)
{
ob_start();
$curl_request = curl_init();
curl_setopt($curl_request, CURLOPT_URL, $url);
curl_setopt($curl_request, CURLOPT_POST, 1);
curl_setopt($curl_request, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($curl_request, CURLOPT_HEADER, 1);
curl_setopt($curl_request, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl_request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_request, CURLOPT_FOLLOWLOCATION, 0);
$jsonEncodedData = json_encode($parameters);
$post = array(
"method" => $method,
"input_type" => "JSON",
"response_type" => "JSON",
"rest_data" => $jsonEncodedData
);
curl_setopt($curl_request, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($curl_request);
curl_close($curl_request);
$result = explode("\r\n\r\n", $result, 2);
$response = json_decode($result[1]);
ob_end_flush();
return $response;
}
//login ----------------------------------------
$login_parameters = array(
"user_auth" => array(
"user_name" => $username,
"password" => md5($password),
"version" => "1"
),
"application_name" => "RestTest",
"name_value_list" => array(),
);
$login_result = call("login", $login_parameters, $url);
/*
echo "<pre>";
print_r($login_result); //nothing
echo "</pre>";
*/
//get session id
$session_id = $login_result->id;
//retrieve fields --------------------------------
$get_module_fields_parameters = array(
//session id
'session' => $session_id,
//The name of the module from which to retrieve records
'module_name' => 'Accounts',
//Optional. Returns vardefs for the specified fields. An empty array will return all fields.
'fields' => array(
'id',
'name',
),
);
$get_module_fields_result = call("get_module_fields", $get_module_fields_parameters, $url);
echo "<pre>";
print_r($get_module_fields_result); //nothing again
echo "</pre>";它产生了下列产出:
stdClass Object
(
[module_name] => Accounts
[table_name] => accounts
[module_fields] => stdClass Object
(
[id] => stdClass Object
(
[name] => id
[type] => id
[group] =>
[id_name] =>
[label] => ID
[required] => 1
[options] => Array
(
)
[related_module] =>
[calculated] =>
[len] =>
)
[name] => stdClass Object
(
[name] => name
[type] => name
[group] =>
[id_name] =>
[label] => Name:
[required] => 1
[options] => Array
(
)
[related_module] =>
[calculated] =>
[len] => 150
)
)
[link_fields] => Array
(
)
)https://stackoverflow.com/questions/48012113
复制相似问题