Enviar POST no servidor?(API do Instagram)
-
20-12-2019 - |
Pergunta
Olhando para http://instagram.com/developer/authentication/ - A forma de comunicação recomendada é no servidor.
Eu entendo como faço o passo 1 e o passo 2.Mas na etapa 3 eles querem que eu POST dados diretamente no servidor?(Eu entendo como eu poderia fazer uma solicitação de postagem do jQuery) Mas é possível fazer diretamente do PHP/CodeIgniter?
Esta é basicamente a etapa 3:
Na etapa anterior, você receberá um código que precisará trocar para receber um access_token para o usuário.Para fazer essa troca, você simplesmente precisa postar esse código, juntamente com alguns parâmetros de identificação do aplicativo para o nosso Access_Token EndPoint.
Eu tenho todas essas informações:(da resposta do Instagram)
client_id: your client id
client_secret: your client secret
grant_type: authorization_code is currently the only supported value
redirect_uri: the redirect_uri you used in the authorization request. Note: this has to be the same value as in the authorization request.
code: the exact code you received during the authorization step.
Solução
Um backend pode fazer um POST assim como o navegador.Grande parte da Internet é uma comunicação servidor a servidor dessa maneira.
Aqui está um exemplo de solicitação POST em PHP (usando Curl)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.example.com/site.html");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "postvar1=value1&postvar2=value2");
// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec ($ch);
curl_close ($ch);
Uma maneira alternativa de definir os parâmetros POST em vez de criar manualmente a sequência de parâmetros:
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query(array('postvar1' => 'value1')));