2014-02-20 4 views
5

Я сейчас волочу свои волосы поверх этого. Я последовал следующий пример:Salesforce php REST API с автоматическим входом

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

но здесь пользователь направляется в форме входа и необходимо войти в систему. Вместо этого я хотел бы опубликовать эти данные в своем коде и не иметь входа в систему, но мое приложение делает это автоматически.

Если кто-нибудь может опубликовать пример о том, как это сделать с помощью oAuth, я был бы очень признателен, поскольку я не желаю использовать эту раздутую реализацию SOAP.

Cheers guys!

ответ

10

Кажется, после того, как некоторые более мастерить мои попытки увенчались успехом ::

$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; 

Теперь все, что осталось сделать, это сохранить access_token & instance_url из этого ответа в сессионный вар и работать вне на наших объектах.

Я надеюсь, что это поможет кому-то еще с подобными проблемами.

+2

Спасибо за код! В некоторых настройках я обнаружил, что вам нужно создать токен безопасности, а затем добавить его к паролю, например. "& password =". ПАРОЛЬ . SECURITY_TOKEN – redgeoff

+0

С 2016 года: D - '' grant_type = password'' больше не работает для меня –

+0

Хорошо, не проблема. Знаете ли вы, что такое обновленные параметры? Я не работал с этим уже более 2 лет, поэтому не могу проверить. – privilegue

Смежные вопросы