Télécharger des fichiers sur Zoho API avec PHP Curl
Question
J'essaie de joindre un fichier à une page de compte ZoHo CRM à l'aide de l'API de Zohocrm et de ne pas avoir de succès.J'utilise curl et php5.3 (no curl_file_create, donc à l'aide de la version laminée à la main).
Dans mon journal, je reçois le rapport suivant
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
)
Je n'ai aucune réponse de Zohrocrm et le fichier n'est définitivement pas joint à l'enregistrement de compte cible.Qu'est-ce que je fais mal?
Voici quelques extraits de mon code qui peuvent aider ou entraver: ... Autres méthodes de ma classe Zohaapi telle que getSearchRecords semblent fonctionner correctement ...
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);
}
...
}
La solution
Lorsque vous essayez de télécharger un fichier, vérifiez que vous avez la permission de le faire: - (
éteint le fichier que j'essayais de télécharger n'a pas pu être lu par le processus.