通过REST调用向Dynamics CRM添加新的联系人记录

Jor*_*Lev 10 php dynamics-crm

我对Dynamics的工作原理一无所知,也不了解它的数据模型(也不了解它的术语,所以如果我使用了错误的术语,我会提前道歉).

我正在建立一个网站,当有人填写该网站上的表格时,需要在Dynamics CRM中创建一个新记录(我相信最新版本是2011).

本网站是用PHP构建的,因此MS提供的示例代码不适用.理想情况下,我正在寻找的是一些指令或教程的链接,如下所示:

  1. 发出对此网址的POST请求:http://myinstallation.com/address/to/rest/endpoint
  2. 传递这些参数:
    • '密码':申请密码
    • 'firstName':联系名字
    • 'lastName':联系姓氏
    • 'address1':街道地址的第一行等.
  3. 它将以JSON字符串形式返回以下信息:
    • '错误代码':0表示成功,否则错误编号
    • '错误消息':错误描述(如果有的话)

我知道也许在CRM中没有直接的"联系"概念,而是"机会","人"和"组织"的某种组合.我知道也许你不只是发送密码而是一些身份验证令牌或cookie数据.我知道它可能需要SOAP调用而不是REST调用(虽然最新版本似乎支持REST,我更喜欢它,因为它更简单).我知道它可能不会返回JSON字符串.我上面发布的内容只是我理想答案看起来的格式的一个例子(不是要求要求,只是因为我知道MS和PHP世界之间的事情可能会"失去翻译",所以希望这有助于解释什么对我虚弱的大脑的一个有用的答案看起来像).

或者也许我完全偏离基础,如果没有大量的定制化,那么做这种事情是不可能的?

顺便说一下,我目前不关心"双向同步",所以我只需要告诉CRM有一个新的联系人(理想情况下它会自动标记它认为是重复的记录,但这不是必需的).

感谢您提供的任何指导或帮助.

ste*_*rie 3

我也遇到了同样的问题,经过一番折腾(在此期间我在这里看到了你的帖子),我找到了这个人,他以非常合理的价格提供了一个预构建的 PHP 库,可以满足你的需求:

http://www.zenithies.org/articles/articles/6/microsoft-dynamics-crm-4-0-php-integration-offer.html

我正在将他的代码与我的生产应用程序集成,但这是您处理的界面,非常接近您正在寻找的界面:

$bridge = new CrmExt();
$bridge->liveUser = 'username@domain.com';
$bridge->livePassword = 'password';
$bridge->crmDiscoveryHost = 'domain.crm.dynamics.com';
$bridge->crmDiscoveryHostHttps = true;
$bridge->crmAddress = 'domain.crm.dynamics.com';
$bridge->crmHost = 'domain.api.crm.dynamics.com';
$bridge->crmHostHttps = true;

try {
    $bridge->connnect();

    $newContact = array(
        'firstname' => 'John',
        'lastname' => 'Doe',
        'emailaddress1' => 'example@example.com',
        'telephone1' => '+420 000 000 000 000',
        // etc ..
    );

    // This will send account into crm
    $newContactId = $bridge->pushContact( $newContact );
} catch (Exception $e) {
    printf(
        '<h1>Error:</h1><ul><li>%s</li></ul><pre>%s</pre>',
        $e->getMessage(),
        $bridge->dump(true)
    );
}
Run Code Online (Sandbox Code Playgroud)