Я пытаюсь прикрепить файл к странице учетной записи Zoho CRM с помощью API ZohoCRM и не добился успеха. Я использую Curl и PHP5.3 (без curl_file_create, поэтому используя ручную версию).
В моем журнале я получаю следующий отчет
Curl::post Url: https://crm.zoho.com/crm/private/json/Accounts/uploadFile?authtoken=MY_TOKEN&scope=crmapi Params: Array( [content] => @/tmp/b2d-JbJvMY;filename=b2d-JbJvMY;type=application/pdf [id] => MY_ACCOUNT_ID )
Я не получаю ответа от ZohoCRM, и файл определенно не привязан к целевой записи учетной записи. Что я делаю не так?
Вот некоторые отрывки из моего кода, которые могут помочь или помешать: … другие методы из моего класса ZohoAPI, такие как getSearchRecords, работают нормально …
class Curl { ... protected static function post($url, $params) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); $data = curl_exec($ch); curl_close($ch); return $data; } ... } class ZohoAPI extends Curl { .... protected function apiPost($url, $params) { $url .= "?authtoken={$this->token}&scope={$this->scope}"; $apiParams = empty($params) ? '' : $params; return $this->post($url, $apiParams); } ... public function uploadFile($module='Accounts', $zohoId = '', $file ) { $url = "{$this->apiUrl}/{$this->mode}/{$module}/uploadFile"; $params = array( 'content' => curl_file_create($file, 'application/pdf' , basename( $file, '.pdf')), 'id' => $zohoId ); return $this->apiPost($url, $params); } ... }
При попытке загрузить файл убедитесь, что у вас есть разрешение на это 🙁
Оказывается, файл, который я пытался загрузить, не мог быть прочитан процессом.