Accessing apex webservice/SOAP method from PHP

General Tech Bugs & Fixes 2 years ago

0 1 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (1)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

I am trying to call a SF method from a remote PHP script. I am using github.com/developerforce/Force.com-Toolkit-for-PHP.

Method has been set as a webservice :

global class groupCamp {
    webservice static void method() {
        // some HTTP requests & mails here
    }
}

PHP code :

ini_set("soap.wsdl_cache_enabled", "0");
require_once ('soapclient/SforceEnterpriseClient.php');

// connection
$mySforceConnection = new SforceEnterpriseClient();
$mySforceConnection->createConnection("soapclient/enterprise.wsdl.xml");
// question 1
$mySforceConnection->setEndPoint("https://login.salesforce.com/services/Soap/c/36.0");

define("USERNAME", …);
define("PASSWORD", …);
define("SECURITY_TOKEN", …);

$login = $mySforceConnection->login(USERNAME, PASSWORD.SECURITY_TOKEN);
$client = new SoapClient("groupCamp.xml");
$header = new SoapHeader("http://soap.sforce.com/schemas/class/groupCamp", "SessionHeader",
  ["sessionId" => $mySforceConnection->getSessionId()]);
$client->__setSoapHeaders([$header]);

// question 2
$client->__setLocation(get_object_vars($login)['serverUrl']);


try {
    $client->method();
} catch (Exception $e) {
    fwrite(fopen("SalesforceToGroupcamp.log", 'a'), date('Y-m-d H:i:s')." : ".$e->getMessage()." : ".$e->getLine()."\n".$e->getTraceAsString());
}

I get the error :

No operation available for request {http://soap.sforce.com/schemas/class/groupCamp}mymethod

Question 1 : What am I supposed to put here : same version number as API I guess ? And why /u/ or /c/ ?

Question 2 : is this how I am supposed to define location ? Or is this with setEndpoint, or in the header ?

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.