У меня проблемы с попыткой запустить мой код. Я пытаюсь использовать cUrl с аутентификацией post и http, но не могу заставить его работать.
Я использую следующий код:
public function index(){
$call = $this->call("URL_TO_CALL", $this->getCredentials(), $this->getJson());
}
private function getCredentials(){
return "API_KEY_HERE";
}
private function getJson(){
return $json;
}
private function call($page, $credentials, $post){
$url = "URL_TO_CALL";
$page = "/shipments";
$headers = array(
"Content-type: application/vnd.shipment+json;charset=utf-8",
"Authorization: Basic :" . base64_encode($credentials)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// Apply the POST to our curl call
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$data = curl_exec($ch);
if (curl_errno($ch)) {
print "Error: " . curl_error($ch);
} else {
// Show me the result
var_dump($data);
curl_close($ch);
}
}
Я получаю ответ:
{"errors":[{"code":3001}],"message":"Permission Denied. (insertShipment)"}
Я ожидал список поставок. Я делаю что-то явно не так здесь?
Глядя на свой код, вы указываете URL-адрес в переменной, а затем указываете точную страницу, однако, когда вы устанавливаете URL-адрес для локона, вы просто используете переменную URL-адреса, а не переменные URL + PAGE.
Других решений пока нет …