从 XRMServices/2011/Organization.svc 获取标识符的问题
Issue getting identifier from XRMServices/2011/Organization.svc
我有一些类似于下面 Jason Lattimer 的代码,这些代码曾经有效,但现在失败了。我可以在 wsdl 中找到 "Identifier" 了。谁能提供这方面的帮助?
function GetADFS($url) {
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url . "XrmServices/2011/Organization.svc?wsdl=wsdl0" );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_TIMEOUT, 60 );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec ( $ch );
curl_close ( $ch );
$responsedom = new DomDocument ();
$responsedom->loadXML ( $response );
// **************************************************
// **************************************************
// Can no longer find this Identifier
// **************************************************
// **************************************************
$identifiers = $responsedom->getElementsbyTagName ( "Identifier" );
$identifier = $identifiers->item ( 0 )->textContent;
return str_replace ( "http://", "https://", $identifier );
}
它在命名空间 'ms-xrm' 中,所以替换
$identifiers = $responsedom->getElementsbyTagName ( "Identifier" );
和
$identifiers = $responsedom->getElementsbyTagNameNS ( "ms-xrm","Identifier" );
并检查。接下来是检查实际的 WSDL,如果您看到此节点,如果没有,则可能是您的 CRM 配置有问题,因为该节点仅在您使用 ADFS 时可用。
我有一些类似于下面 Jason Lattimer 的代码,这些代码曾经有效,但现在失败了。我可以在 wsdl 中找到 "Identifier" 了。谁能提供这方面的帮助?
function GetADFS($url) {
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url . "XrmServices/2011/Organization.svc?wsdl=wsdl0" );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_TIMEOUT, 60 );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec ( $ch );
curl_close ( $ch );
$responsedom = new DomDocument ();
$responsedom->loadXML ( $response );
// **************************************************
// **************************************************
// Can no longer find this Identifier
// **************************************************
// **************************************************
$identifiers = $responsedom->getElementsbyTagName ( "Identifier" );
$identifier = $identifiers->item ( 0 )->textContent;
return str_replace ( "http://", "https://", $identifier );
}
它在命名空间 'ms-xrm' 中,所以替换
$identifiers = $responsedom->getElementsbyTagName ( "Identifier" );
和
$identifiers = $responsedom->getElementsbyTagNameNS ( "ms-xrm","Identifier" );
并检查。接下来是检查实际的 WSDL,如果您看到此节点,如果没有,则可能是您的 CRM 配置有问题,因为该节点仅在您使用 ADFS 时可用。