Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite, nunca mechi com curl e estou tomando uma surra bunita, se puderem me ajudar, estou consumindo uma api e preciso enviar dados do mysql para esta api, mas antes estou tentando testar com variaveis feitas a mao sem conectar no BD, funcionando com as variaveis eu desenrolo a consulta depois. segue codigo e duvida:
<?php
$curl = curl_init();
$numero = '000000000';
$msg = 'teste de mensagem BD';
curl_setopt_array($curl, array(
CURLOPT_URL => "http://urldaapi",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\r\n \"menssage\": '.$msg.',\r\n \"number\": '.$numero.'\r\n}",
CURLOPT_HTTPHEADER => array(
"Authorization: 0000000000000000000",
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err; echo $response;
}
nessa linha
CURLOPT_POSTFIELDS => "{\r\n \"menssage\": '.$msg.',\r\n \"number\": '.$numero.'\r\n}",
a original é a seguinte
CURLOPT_POSTFIELDS => "{\r\n \"menssage\": \"Teste pela API\",\r\n \"number\": \"6200000000\"\r\n}",
gostaria da ajuda dos colegas de como pegar essas variaveis $numero = '000000000'; e $msg = 'teste de mensagem BD'; e repassar elas para o CURLOPT_POSTFILDES, tentei como a primeira linha mas nao da, preciso modificar a linha original para consumir esses valores. podem me ajudar?
obrigado meu amigo, vou testar, muito bem explicado!
Essa API parece que consome e retorna dados em JSON
Sabendo disso fica muito fácil trabalhar!
Veja exemplo e comentários
<?php
/*
* Array com os parametros que a API solicita
*/
$jsonData = [
'number' => '1194445566',
'message' => 'minha mensagem'
];
/*
* Endpoint da API - Prefira sempre separar em variaveis para uma melhor leitura e desacoplamento de código
*/
$endpoint = 'http://api.url';
/*
* Array com os HEADERs que a API exige que seja utilizado
*/
$headers = [
'content-type: application/json',
'Authorization Basic: XXXXXXXXXXX'
];
/*
* Inicialização do cURL
*/
$ch = curl_init();
/*
* Array com opções/parametros que podemos usar no cURL
* Utilize o parametro CUSTOMREQUEST somente se for algo diferente de POST ou GET
* Se você quiser tratar os dados recebidos deixe a opção HEADER em false, mas para fins de debug deixe como true
*/
$chOptions = [
CURLOPT_URL => $endpoint,
/*
* Indicamos em qual array estão as opções do cURL e então o executamos
*/
/*
* Se o request ao endpoint for TRUE então tratamos o callback fornecido
* Supondo que o retorno também é em JSON, nós o transformamos num array na variavel $callack
* Se o request ao endpoint por algum motivo der erro, então imprimimos o erro da conexão
*/
} else {
/*
* Indicar o fechamento do curl ao meu ver entra como opcional, mas caso sejam várias requisições em loop, então recomendo a utilização.
*/