SoapClient + PHP + Sharepoint +从列表或GetItemsByIds中获取图像


SoapClient + PHP + Sharepoint + Getting images from a list OR GetItemsByIds

我正在使用SoapClient从sharepoint列表中提取数据。如果它是一个正常的文本字段,它的工作很好,给我的图像。我甚至可以将图像附加到单个列表元素,并将其链接到另一个字段,并以这种方式获取图像。问题是,每当我访问页面时,它都会要求我登录我的sharepoint帐户,这显然是我网站的普通用户无法做到的。

首先,如果有一种方法可以解决这个问题,那将是一个充分的答案,因为这是我理想的方法。

但是,如果更好的方法是创建一个图片库,然后从那里提取图片,那么这就不是问题了。

基本上我需要知道的是如何使用成像库和GetItemsByIds方法?我对soap和sharepoint非常陌生,所以我为可能是琐碎的问题道歉,但我真的需要知道如何做到这一点,我在互联网上找不到解释我需要知道的资源(如果有的话,链接它!)。请记住,我必须在PHP中这样做。

下面是我用来提取列表数据的一些代码:
<?php
  $authParams = array(
  'login' => 'username',
  'password' => 'pass'
);
$listName = "{GUID}";
$rowLimit = '500';
$wsdl = "list.wsdl";
$soapClient = new SoapClient($wsdl, $authParams);
$params = array(
  'listName' => $listName,
  'rowLimit' => $rowLimit;
);
echo file_get_contents($wsdl, FILE_TEXT, stream_context_create(array('http' => array('timeout' => 1))), 0, 1);
$rawXMLresponse = null;
try{
    $rawXMLresponse = $soapClient->GetListItems($params)->GetListItemsResult->any;
}
catch(SoapFault $fault){
    echo 'Fault code: '.$fault->faultcode;
    echo 'Fault string: '.$fault->faultstring;
}
echo '<pre>' . $rawXMLresponse . '</pre>';
$dom = new DOMDocument();
$dom->loadXML($rawXMLresponse);
$results = $dom->getElementsByTagNameNS("#RowsetSchema", "*");
?>
//do the useful thing
<?php
unset($soapClient);
?>

这是用户权限的问题。一旦我们有了一个具有正确权限的帐户,它就可以正常工作了。