Take the 2-minute tour ×
Salesforce Stack Exchange is a question and answer site for Salesforce administrators, implementation experts, developers and anybody in-between. It's 100% free, no registration required.

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

    }

}
share|improve this question
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. –  Daniel Ballinger Apr 7 '14 at 22:20
    
Is your $fileID record coming through properly? –  EricSSH Apr 7 '14 at 23:28

1 Answer 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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.