2014-02-20 13 views
5

Ich ziehe gerade meine Haare über diese. Ich habe das folgende Beispiel gefolgt:Salesforce php REST API mit automatischer Anmeldung

http://developer.force.com/cookbook/recipe/interact-with-the-forcecom-rest-api-from-php

aber hier der Benutzer auf die Login-Formular gesendet wird und muss sich anmelden. Stattdessen möchte ich diese Daten in meinem Code veröffentlichen und nicht den Benutzer anmelden, aber meine App macht das automatisch.

Wenn jemand ein Beispiel auf, wie man das mit oAuth tut, würde ich es wirklich schätzen, da ich nicht begierig darauf bin, diese aufgeblähte SOAP-Implementierung zu verwenden.

Prost Jungs!

Antwort

10

Es scheint, nachdem einige mehr bastelt meine Versuche, ein Erfolg gewesen sein ::

$loginurl = "https://login.salesforce.com/services/oauth2/token"; 

$params = "grant_type=password" 
. "&client_id=" . CLIENT_ID 
. "&client_secret=" . CLIENT_SECRET 
. "&username=" . USER_NAME 
. "&password=" . PASSWORD; 

$curl = curl_init($loginurl); 
curl_setopt($curl, CURLOPT_HEADER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $params); 

$json_response = curl_exec($curl); 

$status = curl_getinfo($curl, CURLINFO_HTTP_CODE); 

if ($status != 200) { 
    die("Error: call to URL failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl)); 
} 

curl_close($curl); 

echo $json_response; 

Nun sind alle, die die access_token & instance_url aus dieser Reaktion in einer Sitzung var und zu tun, weg gelassen wird gespeichert wird arbeiten auf unsere Objekte.

Ich hoffe, das oben genannte hilft jemand anderen mit ähnlichen Problemen.

+2

Danke für den Code! In einigen Setups habe ich festgestellt, dass Sie ein Sicherheitstoken generieren und dann an das Passwort anhängen müssen, z. "& Passwort =". PASSWORT . SECURITY_TOKEN – redgeoff

+0

Ab 2016: D - '' grant_type = passwort'' funktioniert bei mir nicht mehr –

+0

Ok kein Problem. Weißt du, was die aktualisierten Parameter dann sind? Ich habe seit über 2 Jahren nicht mehr damit gearbeitet. – privilegue