我想使用純Javascript從MS Dynamics CRM Online 2011添加/檢索數據。我搜索了整整一天,但只能找到與Dynamics SDK,C#,VB或JScript做到這一點。Javascript - 從MS Dynamics CRM Online中添加和檢索數據
有沒有什麼辦法可以在純JavaScript中做到這一點?我只需要找到一個Web服務來發送/獲取數據,但無法找到它。有沒有這樣的Web服務或API存在?請幫助我完全困惑!謝謝。
我想使用純Javascript從MS Dynamics CRM Online 2011添加/檢索數據。我搜索了整整一天,但只能找到與Dynamics SDK,C#,VB或JScript做到這一點。Javascript - 從MS Dynamics CRM Online中添加和檢索數據
有沒有什麼辦法可以在純JavaScript中做到這一點?我只需要找到一個Web服務來發送/獲取數據,但無法找到它。有沒有這樣的Web服務或API存在?請幫助我完全困惑!謝謝。
與Javascript和CRM交互的兩種方式是通過OData或SOAP服務。最簡單的方法是儘可能使用OData。
您將要遇到的問題是使用Odata進行身份驗證。 OData Access is not supported outside of CRM javascript and Silverlight。 (雖然我使用LinqPad創建我的Odata查詢,並且它用它查詢CRM就好了,所以我不確定這是什麼)
解決此問題的常用方法是編寫自己的Web服務, CRM,然後使用SDK來檢索和更新數據,並以平靜的方式將其公開給您。
正如Guido所指出的那樣,您應該能夠使用來自Java的SOAP請求,但我也只是在CRM內部完成了這項工作,而且我不確定您將面臨什麼樣的身份驗證問題。
這意味着我必須在任何情況下都使用Jscript和Dynamics SDK環境,並且純JavaScript沒有可用的API或Web服務。我對嗎? –
OData端點在CRM上下文之外是不可用的,但這並不意味着不可能僅通過JavaScript查詢CRM,可以使用SOAP端點(當然不是簡單的方法) –
@GuidoPreite您能否給我有些方向?現在我只需要「添加新的潛在客戶」和「獲取現有潛在客戶」以向用戶展示他們。 –
如果需要如他人所述,您可以使用SOAP進行連接(可能不推薦,但正如你想知道的那樣)。如果你不知道如何使用SOAP/JavaScript的話,我建議你閱讀本: Simplest SOAP example
要使用Office 365連接到在線CRM(所有的Windows Live帳戶遷移到Office 365),那麼你需要得到安全令牌然後將其用於您的請求。
以下是PHP中令牌的請求,您應該能夠重構JavaScript。
$TokenSOAP = '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action>
<a:MessageID>urn:uuid:%s</a:MessageID>
<a:ReplyTo>
<a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
</a:ReplyTo>
<a:To s:mustUnderstand="1">%s</a:To>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>%sZ</u:Created>
<u:Expires>%sZ</u:Expires>
</u:Timestamp>
<o:UsernameToken u:Id="uuid-cdb639e6-f9b0-4c01-b454-0fe244de73af-1">
<o:Username>%s</o:Username>
<o:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">%s</o:Password>
</o:UsernameToken>
</o:Security>
</s:Header>
<s:Body>
<t:RequestSecurityToken xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust">
<wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<a:EndpointReference>
<a:Address>urn:crmapac:dynamics.com</a:Address>
</a:EndpointReference>
</wsp:AppliesTo>
<t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType>
</t:RequestSecurityToken>
</s:Body>
</s:Envelope>';
$TokenSOAP = sprintf($TokenSOAP, self::gen_uuid(), 'https://login.microsoftonline.com/RST2.srf', self::getCurrentTime(), self::getNextDayTime(), $username, $password);
更改端點引用地址需要根據您的CRM區域
這將返回兩個安全令牌和密鑰標識符。
然後你需要做你的添加和檢索。如果谷歌「CRM 2011 SOAP」和以下四個功能「創建」,「更新」,「檢索」和「RetrieveMultiple」你應該得到大量的肥皂樣本例如:
http://www.mscrmconsultant.com/2012/07/create-update-delete-record-using.html
你運行來自CRM本身的JavaScript?或者你是從另一個網站上做的嗎? – Daryl
實際上,我不想通過用戶輸入數據併發送到CRM Online的移動應用程序執行此操作。我正在使用Appcelerator Titanium。 –