无法通过 zoho api 上传文档
Can not upload document via zoho api
使用来自 Laravel 的 curl 请求。
$path = storage_path('app/letters/letter.pdf');
$post = '@' . $path;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://sign.zoho.com/api/v1/requests');
$authorization = 'Authorization: Bearer ' . $zohoAccessToken;
curl_setopt($ch, CURLOPT_HTTPHEADER, [$authorization]);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post));
$entriesData = ['data' => [
'requests' => [
'request_name' => "NDA ",
'actions' => [
'recipient_name' => 'test',
'recipient_email' => $mail,
'action_type' => 'sign',
'verify_recipient' => false,
],
'is_sequential' => false,
]
]];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($entriesData));
$output = curl_exec($ch)
并得到错误响应:“消息”:“找到额外的密钥”,“状态”:“失败”,“代码”:9015,
我正在使用此代码获取访问令牌并且效果很好
$data = [
'refresh_token' => $refreshToken,
'client_id' => $clientId,
'client_secret' => $secret,
'grant_type' => 'refresh_token'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://accounts.zoho.com/oauth/v2/token');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
基于 API documentation and this post,我认为这应该类似于:
$path = storage_path('app/letters/letter.pdf');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://sign.zoho.com/api/v1/requests');
$authorization = 'Authorization: Bearer ' . $zohoAccessToken;
curl_setopt($ch, CURLOPT_HTTPHEADER, [$authorization]);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'data' => json_encode([
'requests' => [
'request_name' => "NDA ",
'actions' => [
'recipient_name' => 'test',
'recipient_email' => $mail,
'action_type' => 'sign',
'verify_recipient' => false,
],
'is_sequential' => false,
]
]),
'file' => curl_file_create($path)
];
$output = curl_exec($ch);
因此,根据 API 文档,它似乎产生与 CURL 命令行调用大致相同的有效负载。
让我感到困惑的主要来源是 data
是该字段的键,而相应的值是 JSON 编码的。
使用来自 Laravel 的 curl 请求。
$path = storage_path('app/letters/letter.pdf');
$post = '@' . $path;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://sign.zoho.com/api/v1/requests');
$authorization = 'Authorization: Bearer ' . $zohoAccessToken;
curl_setopt($ch, CURLOPT_HTTPHEADER, [$authorization]);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post));
$entriesData = ['data' => [
'requests' => [
'request_name' => "NDA ",
'actions' => [
'recipient_name' => 'test',
'recipient_email' => $mail,
'action_type' => 'sign',
'verify_recipient' => false,
],
'is_sequential' => false,
]
]];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($entriesData));
$output = curl_exec($ch)
并得到错误响应:“消息”:“找到额外的密钥”,“状态”:“失败”,“代码”:9015,
我正在使用此代码获取访问令牌并且效果很好
$data = [
'refresh_token' => $refreshToken,
'client_id' => $clientId,
'client_secret' => $secret,
'grant_type' => 'refresh_token'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://accounts.zoho.com/oauth/v2/token');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
基于 API documentation and this post,我认为这应该类似于:
$path = storage_path('app/letters/letter.pdf');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://sign.zoho.com/api/v1/requests');
$authorization = 'Authorization: Bearer ' . $zohoAccessToken;
curl_setopt($ch, CURLOPT_HTTPHEADER, [$authorization]);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'data' => json_encode([
'requests' => [
'request_name' => "NDA ",
'actions' => [
'recipient_name' => 'test',
'recipient_email' => $mail,
'action_type' => 'sign',
'verify_recipient' => false,
],
'is_sequential' => false,
]
]),
'file' => curl_file_create($path)
];
$output = curl_exec($ch);
因此,根据 API 文档,它似乎产生与 CURL 命令行调用大致相同的有效负载。
让我感到困惑的主要来源是 data
是该字段的键,而相应的值是 JSON 编码的。