1

我正在尝试使用 ZohoCRM API 将文件附加到 Zoho CRM 帐户页面,但没有成功。我正在使用 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);
}
...
}
4

1 回答 1

0

尝试上传文件时,请检查您是否有权这样做:-(

原来我试图上传的文件无法被进程读取。

于 2014-04-15T07:35:25.877 回答