Я использую PHP для выполнения запросов cURL к REST API Salesforce.
У меня есть большинство запросов, которые мне нужно выяснить, но я не уверен, как преобразовать следующие curl
команда на следующей странице API Salesforce для запроса cURL в PHP:
curl https://yourInstance.salesforce.com/services/data/v20.0/sobjects/Account/customExtIdField__c/11999 -H "Authorization: Bearer token" -H "Content-Type: application/json" -d @newrecord.json -X PATCH
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_upsert.htm
Я знаю что то -H
опция для заголовков, которую я передаю со следующим:
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
И я считать что -X PATCH
часть может быть выполнена с помощью следующей опции PHP cURL:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
Тем не менее, как мне справиться с -d @newrecord.json
часть в PHP CURL?
Благодарю.
Что вы делаете с -d @newrecord.json
загружает файл (JSON) для использования конечной точкой. Чтобы повторить это в PHP, вам нужно передать массив с file
элемент к CUROPT_POSTFIELDS
, как это:
$file = [
"file" => "@newrecord.json";
];
curl_setopt($ch, CURLOPT_POSTFIELDS, $file);
Убедитесь, что вы указали правильный путь к файлу. Ты можешь использовать realpath()
чтобы помочь с этим.
Кроме того, вы можете просто отправить данные в кодировке JSON:
$data = [
"site" => "Stack Overflow",
"help" => true,
];
$jsonData = json_encode($data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
Не забудьте установить свой Content-Type: application/json
заголовок!
Наконец, ваше предположение о PATCH
запрос правильный:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
Вы должны отправить JSON
$post = json_encode($data);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);