cURL Multipart Post,如何包含Docebo API的文件

时间:2016-11-24 11:05:21

标签: php api curl multipart

编辑:

我想我想他们想要包含文件的值的键。

所以它应该是:

$data = [
    "importMap" => "userid,firstname,lastname,email,new_password",
    "uploadedFileKey" => "@" . realpath("sample.csv"),
    "file_upload" => "uploadedFileKey",
    ...
];

Alas返回(Error 500), Ouch! Something went wrong!页面。可能api方法已被禁用。

/ end edit

我正在使用Docebo API,我发送的每个电话都可以正常工作,除非我想要包含文件。

我很确定我没有正确地将文件添加到postfield数组中,但我无法弄清楚我的错误是什么。

API要求:

UserApiModuleStartSynchSchema {
    importMap (Array[string]): Array of columns identifying the columns of the CSV file. For all allowed column names, see notes above. ,
    file_url (string, optional): Publicly accessible URL where the CSV file can be downloaded from ,
    file_upload (string, optional): The name of the uploaded CSV file (via multipart POST) ,
    ...
}

我正在派遣后场:

$data = [
    "importMap" => "userid,firstname,lastname,email,new_password",
    "file_upload" => "sample.csv",
    "file" => "@" . realpath("sample.csv"),
    ...
];

我确保文件存在,内容正确并且使用了正确的编码。

文件内容为:

userid,firstname,lastname,email,new_password
marysmith,Mary,Smith,marysmith@example.com,fi5Zd90S

为了能够使用API​​,您必须创建一个Authorization标头,其中包含所有类似implode(‘,’, $params)的帖子。如果我在其中包含我的文件,则会在Authorization header value doesn't match后回复,如果我在创建标题后将其包含在内,则会以Error while reading uploaded CSV file回复。

所以我认为第二个选项是要去的那个,但是我无法弄清楚是什么让它无法读取文件。

0 个答案:

没有答案