/library/developerforce/tksample.php

https://github.com/r1zib/salesforce · PHP · 314 lines · 263 code · 45 blank · 6 comment · 10 complexity · 1e8ff9a884024045d174c058cc30dd62 MD5 · raw file

  1. <?php
  2. // session_start() has to go right at the top, before any output!
  3. session_start();
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  6. <html>
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  9. <title>REST/OAuth Example</title>
  10. </head>
  11. <body>
  12. <tt>
  13. <?php
  14. require_once ('soapclient/SforcePartnerClient.php');
  15. require_once ('soapclient/SforceEnterpriseClient.php');
  16. define("USERNAME", "user@example.com");
  17. define("PASSWORD", "password");
  18. define("SECURITY_TOKEN", "sdfhkjwrhgfwrgergp");
  19. try {
  20. echo "<table border=\"1\"><tr><td>";
  21. echo "First with the enterprise client<br/><br/>\n";
  22. $mySforceConnection = new SforceEnterpriseClient();
  23. $mySforceConnection->createConnection("soapclient/enterprise.wsdl.xml");
  24. // Simple example of session management - first call will do
  25. // login, refresh will use session ID and location cached in
  26. // PHP session
  27. if (isset($_SESSION['enterpriseSessionId'])) {
  28. $location = $_SESSION['enterpriseLocation'];
  29. $sessionId = $_SESSION['enterpriseSessionId'];
  30. $mySforceConnection->setEndpoint($location);
  31. $mySforceConnection->setSessionHeader($sessionId);
  32. echo "Used session ID for enterprise<br/><br/>\n";
  33. } else {
  34. $mySforceConnection->login(USERNAME, PASSWORD.SECURITY_TOKEN);
  35. $_SESSION['enterpriseLocation'] = $mySforceConnection->getLocation();
  36. $_SESSION['enterpriseSessionId'] = $mySforceConnection->getSessionId();
  37. echo "Logged in with enterprise<br/><br/>\n";
  38. }
  39. $query = "SELECT Id, FirstName, LastName, Phone from Contact";
  40. $response = $mySforceConnection->query($query);
  41. echo "Results of query '$query'<br/><br/>\n";
  42. foreach ($response->records as $record) {
  43. echo $record->Id.": ".$record->FirstName." "
  44. .$record->LastName." ".$record->Phone."<br/>\n";
  45. }
  46. echo "<br/>Now, create some records<br/><br/>\n";
  47. $records = array();
  48. $records[0] = new stdclass();
  49. $records[0]->FirstName = 'John';
  50. $records[0]->LastName = 'Smith';
  51. $records[0]->Phone = '(510) 555-5555';
  52. $records[0]->BirthDate = '1957-01-25';
  53. $records[1] = new stdclass();
  54. $records[1]->FirstName = 'Mary';
  55. $records[1]->LastName = 'Jones';
  56. $records[1]->Phone = '(510) 486-9969';
  57. $records[1]->BirthDate = '1977-01-25';
  58. $response = $mySforceConnection->create($records, 'Contact');
  59. $ids = array();
  60. foreach ($response as $i => $result) {
  61. echo ($result->success == 1)
  62. &nbsp;? $records[$i]->FirstName." ".$records[$i]->LastName
  63. ." ".$records[$i]->Phone." created with id "
  64. .$result->id."<br/>\n"
  65. &nbsp;: "Error: ".$result->errors->message."<br/>\n";
  66. array_push($ids, $result->id);
  67. }
  68. echo "<br/>Retrieve the newly created records:<br/><br/>\n";
  69. $response = $mySforceConnection->retrieve('Id, FirstName, LastName, Phone',
  70. 'Contact', $ids);
  71. foreach ($response as $record) {
  72. echo $record->Id.": ".$record->FirstName." "
  73. .$record->LastName." ".$record->Phone."<br/>\n";
  74. }
  75. echo "<br/>Next, update the new records<br/><br/>\n";
  76. $records[0] = new stdclass();
  77. $records[0]->Id = $ids[0];
  78. $records[0]->Phone = '(415) 555-5555';
  79. $records[1] = new stdclass();
  80. $records[1]->Id = $ids[1];
  81. $records[1]->Phone = '(415) 486-9969';
  82. $response = $mySforceConnection->update($records, 'Contact');
  83. foreach ($response as $result) {
  84. echo ($result->success == 1)
  85. &nbsp;? $result->id." updated<br/>\n"
  86. &nbsp;: "Error: ".$result->errors->message."<br/>\n";
  87. }
  88. echo "<br/>Retrieve the updated records to check the update:<br/><br/>\n";
  89. $response = $mySforceConnection->retrieve('Id, FirstName, LastName, Phone',
  90. 'Contact', $ids);
  91. foreach ($response as $record) {
  92. echo $record->Id.": ".$record->FirstName." "
  93. .$record->LastName." ".$record->Phone."<br/>\n";
  94. }
  95. echo "<br/>Let's remove those phone numbers<br/><br/>\n";
  96. $records[0] = new stdclass();
  97. $records[0]->Id = $ids[0];
  98. $records[0]->fieldsToNull = 'Phone';
  99. $records[1] = new stdclass();
  100. $records[1]->Id = $ids[1];
  101. $records[1]->fieldsToNull = 'Phone';
  102. $response = $mySforceConnection->update($records, 'Contact');
  103. foreach ($response as $result) {
  104. echo ($result->success == 1)
  105. &nbsp;? $result->id." updated<br/>\n"
  106. &nbsp;: "Error: ".$result->errors->message."<br/>\n";
  107. }
  108. echo "<br/>Retrieve the updated records again to check the update:";
  109. echo "<br/><br/>\n";
  110. $response = $mySforceConnection->retrieve('Id, FirstName, LastName, Phone',
  111. 'Contact', $ids);
  112. foreach ($response as $record) {
  113. echo $record->Id.": ".$record->FirstName." "
  114. .$record->LastName." ".$record->Phone."<br/>\n";
  115. }
  116. echo "<br/>Finally, delete the records:<br/><br/>\n";
  117. $response = $mySforceConnection->delete($ids);
  118. foreach ($response as $result) {
  119. echo ($result->success == 1)
  120. &nbsp;? $result->id." deleted<br/>\n"
  121. &nbsp;: "Error: ".$result->errors->message."<br/>\n";
  122. }
  123. echo "</td><td>";
  124. echo "Now let's use the partner client<br/><br/>\n";
  125. $mySforceConnection = new SforcePartnerClient();
  126. $mySforceConnection->createConnection("soapclient/partner.wsdl.xml");
  127. if (isset($_SESSION['partnerSessionId'])) {
  128. $location = $_SESSION['partnerLocation'];
  129. $sessionId = $_SESSION['partnerSessionId'];
  130. $mySforceConnection->setEndpoint($location);
  131. $mySforceConnection->setSessionHeader($sessionId);
  132. echo "Used session ID for partner<br/><br/>\n";
  133. } else {
  134. $mySforceConnection->login(USERNAME, PASSWORD.SECURITY_TOKEN);
  135. $_SESSION['partnerLocation'] = $mySforceConnection->getLocation();
  136. $_SESSION['partnerSessionId'] = $mySforceConnection->getSessionId();
  137. echo "Logged in with partner<br/><br/>\n";
  138. }
  139. $query = "SELECT Id, FirstName, LastName, Phone from Contact";
  140. $response = $mySforceConnection->query($query);
  141. echo "Results of query '$query'<br/><br/>\n";
  142. foreach ($response->records as $record) {
  143. // Id is on the $record, but other fields are accessed via
  144. // the fields object
  145. echo $record->Id.": ".$record->fields->FirstName." "
  146. .$record->fields->LastName." "
  147. .$record->fields->Phone."<br/>\n";
  148. }
  149. echo "<br/>Now, create some records<br/><br/>\n";
  150. $records = array();
  151. $records[0] = new SObject();
  152. $records[0]->fields = array(
  153. 'FirstName' => 'John',
  154. 'LastName' => 'Smith',
  155. 'Phone' => '(510) 555-5555',
  156. 'BirthDate' => '1957-01-25'
  157. );
  158. $records[0]->type = 'Contact';
  159. $records[1] = new SObject();
  160. $records[1]->fields = array(
  161. 'FirstName' => 'Mary',
  162. 'LastName' => 'Jones',
  163. 'Phone' => '(510) 486-9969',
  164. 'BirthDate' => '1977-01-25'
  165. );
  166. $records[1]->type = 'Contact';
  167. $response = $mySforceConnection->create($records);
  168. $ids = array();
  169. foreach ($response as $i => $result) {
  170. echo ($result->success == 1)
  171. &nbsp;? $records[$i]->fields["FirstName"]." "
  172. .$records[$i]->fields["LastName"]." "
  173. .$records[$i]->fields["Phone"]
  174. ." created with id ".$result->id."<br/>\n"
  175. &nbsp;: "Error: ".$result->errors->message."<br/>\n";
  176. array_push($ids, $result->id);
  177. }
  178. echo "<br/>Retrieve the newly created records:<br/><br/>\n";
  179. $response = $mySforceConnection->retrieve('Id, FirstName, LastName, Phone',
  180. 'Contact', $ids);
  181. foreach ($response as $record) {
  182. echo $record->Id.": ".$record->fields->FirstName." "
  183. .$record->fields->LastName." "
  184. .$record->fields->Phone."<br/>\n";
  185. }
  186. echo "<br/>Next, update the new records<br/><br/>\n";
  187. $records[0] = new SObject();
  188. $records[0]->Id = $ids[0];
  189. $records[0]->fields = array(
  190. 'Phone' => '(415) 555-5555',
  191. );
  192. $records[0]->type = 'Contact';
  193. $records[1] = new SObject();
  194. $records[1]->Id = $ids[0];
  195. $records[1]->fields = array(
  196. 'Phone' => '(415) 486-9969',
  197. );
  198. $records[1]->type = 'Contact';
  199. $response = $mySforceConnection->update($records);
  200. foreach ($response as $result) {
  201. echo ($result->success == 1)
  202. &nbsp;? $result->id." updated<br/>\n"
  203. &nbsp;: "Error: ".$result->errors->message."<br/>\n";
  204. }
  205. echo "<br/>Retrieve the updated records to check the update:<br/><br/>\n";
  206. $response = $mySforceConnection->retrieve('Id, FirstName, LastName, Phone',
  207. 'Contact', $ids);
  208. foreach ($response as $record) {
  209. echo $record->Id.": ".$record->fields->FirstName." "
  210. .$record->fields->LastName." ".$record->fields->Phone."<br/>\n";
  211. }
  212. echo "<br/>Let's remove those phone numbers<br/><br/>\n";
  213. $records[0] = new SObject();
  214. $records[0]->Id = $ids[0];
  215. $records[0]->fieldsToNull = 'Phone';
  216. $records[0]->type = 'Contact';
  217. $records[1] = new SObject();
  218. $records[1]->Id = $ids[1];
  219. $records[1]->fieldsToNull = 'Phone';
  220. $records[1]->type = 'Contact';
  221. $response = $mySforceConnection->update($records);
  222. foreach ($response as $result) {
  223. echo ($result->success == 1)
  224. &nbsp;? $result->id." updated<br/>\n"
  225. &nbsp;: "Error: ".$result->errors->message."<br/>\n";
  226. }
  227. echo "<br/>Retrieve the updated records again to check the update:";
  228. echo "<br/><br/>\n";
  229. $response = $mySforceConnection->retrieve('Id, FirstName, LastName, Phone',
  230. 'Contact', $ids);
  231. foreach ($response as $record) {
  232. echo $record->Id.": ".$record->fields->FirstName." "
  233. .$record->fields->LastName." ".$record->fields->Phone."<br/>\n";
  234. }
  235. echo "<br/>Finally, delete the records:<br/><br/>\n";
  236. $response = $mySforceConnection->delete($ids);
  237. foreach ($response as $result) {
  238. echo ($result->success == 1)
  239. &nbsp;? $result->id." deleted<br/>\n"
  240. &nbsp;: "Error: ".$result->errors->message."<br/>\n";
  241. }
  242. echo "</td></tr></table>";
  243. } catch (Exception $e) {
  244. echo "Exception ".$e->faultstring."<br/><br/>\n";
  245. echo "Last Request:<br/><br/>\n";
  246. echo $mySforceConnection->getLastRequestHeaders();
  247. echo "<br/><br/>\n";
  248. echo $mySforceConnection->getLastRequest();
  249. echo "<br/><br/>\n";
  250. echo "Last Response:<br/><br/>\n";
  251. echo $mySforceConnection->getLastResponseHeaders();
  252. echo "<br/><br/>\n";
  253. echo $mySforceConnection->getLastResponse();
  254. }
  255. &nbsp;?>
  256. </tt>
  257. </body>
  258. </html>