2

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();

    }

}
2
  • 1
    Are you using the same user credentials in the PHP app as in workbench? A different user might not have access to the same records. Commented Apr 7, 2014 at 22:20
  • Is your $fileID record coming through properly? Commented Apr 7, 2014 at 23:28

1 Answer 1

2

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.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.