首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有php的suitecrm

带有php的suitecrm
EN

Stack Overflow用户
提问于 2017-12-28 17:54:05
回答 1查看 3.3K关注 0票数 0

我正在SuiteCRM中尝试我的第一步,并设法安装、添加一些数据并对其进行一些测试。

由于我的目标是通过php使用REST,所以希望连接到应用程序。

我找到了一些例子,但它似乎没有给我任何东西。我能请一位专家为我提供一个良好的起点(或代码),作为通过API从应用程序中读取用户或帐户的示例吗?

我尝试了以下链接:

Module/

然而,给出正确的URL和登录凭据,我甚至连一行都没有。

因此,farI已经做了:

如果有人有任何方法来进一步测试它,请添加评论,因为我想学习。

编辑:

以下是代码:

Print_r(“你好”);-这很管用

代码语言:javascript
复制
$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源代码是:

代码语言:javascript
复制
hello<pre></pre>

点数:

  1. 我正在使用演示网站链接和登录,应该可以工作(我相信)
  2. 在我的站点上也进行了测试,但结果是一样的。
  3. 脚本不会通过任何错误消息。
  4. 即使在演示站点上,URL也可以从浏览器中运行。

更多信息:

我给演示网站打了电话.帮助,所以我想回到我的网站,没有https,只与http交谈,但这是一个砖墙。请查看我更改的代码:

代码语言:javascript
复制
    $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);
EN

回答 1

Stack Overflow用户

发布于 2018-01-01 12:03:27

啊,从没想过这会是个问题,但你错了。检查您的URL是否为rest端点。你需要用合适的结构来指出它。以下是更新的代码(对我来说很好):

代码语言:javascript
复制
$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>";

它产生了下列产出:

代码语言:javascript
复制
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
        (
        )

)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48012113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档