Find your content:

Search form

You are here

PHP and Salesforce API not returning results

 
Share

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

My Block Status

My Block Content