If I use Force.com explorer or workbench.developerforce.com this query works in those tools:
SELECT Id, ContentDocumentId, Title, VersionNumber, PathOnClient
FROM ContentVersion
WHERE ContentDocumentId = '069500000015PP5AAM'
AND IsLatest = True
ORDER BY VersionNumber DESC
LIMIT 1
But when I use PHP it is not returning results:
function GetFileLink($fileID){
try {
$mySforceConnection = new SforcePartnerClient();
$mySoapClient = $mySforceConnection->createConnection(SALESFORCE_WSDL);
$mylogin = $mySforceConnection->login(SALESFORCE_USER, SALESFORCE_PASS . SALESFORCE_TOKEN);
$query = "SELECT Id, ContentDocumentId, Title, VersionNumber, PathOnClient FROM ContentVersion where ContentDocumentId = '" . $fileID . "' AND IsLatest = True ORDER BY VersionNumber DESC LIMIT 1";
// $query = "SELECT Id, ContentDocumentId, Title, PathOnClient, IsLatest FROM ContentVersion where ContentDocumentId = '069500000015PP5AAM' AND IsLatest = 'True' ORDER BY VersionNumber DESC LIMIT 1";
echo "<br /><b>====File Name Query===<br />" . $query . "<br />========================</b><br />";
$result = $mySforceConnection->query($query);
echo "<br /><b>Size of GetFileLink records: " . $result->size . "</b><br />";
if(isset($result->records[0])){
// $sObject = new SObject($result->records[0]);
foreach ($result->records as $record) {
$sObject = new SObject($record);
$FileName = $sObject->fields->PathOnClient;
echo "FileName: " . $FileName . "<br />";
}
return $FileName;
}
} catch (Exception $e) {
echo $mySforceConnection->getLastRequest();
}
}
Attribution to: jasonabuck
Possible Suggestion/Solution #1
This will be a user issue.
There is no difference between explorer/workbench and your integration, they are all using the api (soap or rest).
You have likely created a specific integration user for the integration you are building, but a general user for the explorer/workbench access.
On the user record within salesforce ensure that "Salesforce CRM Content User" option is Checked.
Additionally, if the content is within workspaces/Libraries you should ensure that the integration user is listed as a Member within the Libraries section of Salesforce Content.
Attribution to: dacology
This content is remixed from stackoverflow or stackexchange. Please visit https://salesforce.stackexchange.com/questions/32110