我想使用这个 api:https://www.etermin.net/api/index.html#api-Calendar-Get
对于这个 I API 部分,我有以下代码:
$cURL = curl_init();
curl_setopt($cURL, CURLOPT_URL, 'https://www.etermin.net/api/calendar?ublickey='.$publicKey.'&salt='.$salt.'&signature='.$encodedSignature.'');
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($cURL);
curl_close($cURL);
此代码工作正常!
现在我想用这个 api 创建一个约会:https://www.etermin.net/api/index.html#api-Appointment-Create
现在我需要一个发布请求解决方案,我尝试了这个:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://www.etermin.net/api/appointment");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'publickey' => $publicKey,
'salt' => $salt,
'signature' => $encodedSignature,
'start' => '2021-04-28%2018:00',
'end' => '2021-04-28%2019:00',
'calendarid' => '1234',
'firstname' => 'Max',
'lastname' => 'Mustermann'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close ($ch);
echo '<pre>';
var_dump($server_output);
echo '</pre>';
我得到了回应:
string(11) "Bad Request"
我需要帮助! :(
答案 0 :(得分:0)
试试这个(将头加密到头,而不是后域):
$publicKey = 'YOUR PUBLIC KEY';
$privateKey = 'YOUR PRIVATE KEY';
$salt = mt_rand();
$signature = hash_hmac('sha256', $salt, $privateKey, true);
$encodedSignature = base64_encode($signature);
$url = "https://www.etermin.net/api/appointment"
$ch = curl_init($url);
curl_setopt(
$ch,
CURLOPT_HTTPHEADER,
array(
'publickey:'.$publicKey,
'salt:'.$salt,
'signature:'.$encodedSignature
)
);
curl_setopt(
$ch,
CURLOPT_POST,
1
);
curl_setopt(
$ch,
CURLOPT_POSTFIELDS,
array(
'start' => '2021-04-28%2018:00',
'end' => '2021-04-28%2019:00',
'calendarid' => '1234',
'firstname' => 'Max',
'lastname' => 'Mustermann'
)
);
curl_setopt(
$ch,
CURLOPT_RETURNTRANSFER,
true
);
$server_output = curl_exec($ch);
curl_close ($ch);