recibir por mandar enviar php json post

php - por - Solicitud POST con cuerpo JSON



request json php (5)

Creo que cURL sería una buena solución. Esto no está probado, pero puedes intentar algo como esto:

$body = ''{ "kind": "blogger#post", "blog": { "id": "8070105920543249955" }, "title": "A new post", "content": "With <b>exciting</b> content..." }''; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/blogger/v3/blogs/8070105920543249955/posts/"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Authorization: OAuth 2.0 token here")); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $body); $result = curl_exec($ch);

Me gustaría agregar una publicación a un blog de Blogger a través de PHP. Google proporcionó el ejemplo a continuación. ¿Cómo usar eso con PHP?

Puede agregar una publicación para un blog enviando una solicitud POST al URI de la colección de publicaciones con un cuerpo JSON posterior:

POST https://www.googleapis.com/blogger/v3/blogs/8070105920543249955/posts/ Authorization: /* OAuth 2.0 token here */ Content-Type: application/json { "kind": "blogger#post", "blog": { "id": "8070105920543249955" }, "title": "A new post", "content": "With <b>exciting</b> content..." }


Realicé API enviando datos a través del formulario en el sitio web a prosperworks basado en @Rocket Hazmat, @dbau y @maraca code. Espero que ayude a alguien:

<?php if(isset($_POST[''submit''])) { //form''s fields name: $name = $_POST[''nameField'']; $email = $_POST[''emailField'']; //API url: $url = ''https://api.prosperworks.com/developer_api/v1/leads''; //JSON data(not exact, but will be compiled to JSON) file: //add as many data as you need (according to prosperworks doc): $data = array( ''name'' => $name, ''email'' => array(''email'' => $email) ); //sending request (according to prosperworks documentation): // use key ''http'' even if you send the request to https://... $options = array( ''http'' => array( ''header'' => "Content-Type: application/json/r/n". "X-PW-AccessToken: YOUR_TOKEN_HERE/r/n". "X-PW-Application:developer_api/r/n". "X-PW-UserEmail: YOUR_EMAIL_HERE/r/n", ''method'' => ''POST'', ''content'' => json_encode($data) ) ); //engine: $context = stream_context_create($options); $result = file_get_contents($url, false, $context); if ($result === FALSE) { /* Handle error */ } //compiling to JSON (as wrote above): $resultData = json_decode($result, TRUE); //display what was sent: echo ''<h2>Sent: </h2>''; echo $resultData[''published'']; //dump var: var_dump($result); } ?> <html> <head> </head> <body> <form action="" method="POST"> <h1><?php echo $msg; ?></h1> Name: <input type="text" name="nameField"/> <br> Email: <input type="text" name="emailField"/> <input type="submit" name="submit" value="Send"/> </form> </body> </html>



Debe usar la biblioteca cURL para enviar esta solicitud.

<?php // Your ID and token $blogID = ''8070105920543249955''; $authToken = ''OAuth 2.0 token here''; // The data to send to the API $postData = array( ''kind'' => ''blogger#post'', ''blog'' => array(''id'' => $blogID), ''title'' => ''A new post'', ''content'' => ''With <b>exciting</b> content...'' ); // Setup cURL $ch = curl_init(''https://www.googleapis.com/blogger/v3/blogs/''.$blogID.''/posts/''); curl_setopt_array($ch, array( CURLOPT_POST => TRUE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_HTTPHEADER => array( ''Authorization: ''.$authToken, ''Content-Type: application/json'' ), CURLOPT_POSTFIELDS => json_encode($postData) )); // Send the request $response = curl_exec($ch); // Check for errors if($response === FALSE){ die(curl_error($ch)); } // Decode the response $responseData = json_decode($response, TRUE); // Print the date from the response echo $responseData[''published''];

Si, por alguna razón, no puede / no quiere usar cURL, puede hacer esto:

<?php // Your ID and token $blogID = ''8070105920543249955''; $authToken = ''OAuth 2.0 token here''; // The data to send to the API $postData = array( ''kind'' => ''blogger#post'', ''blog'' => array(''id'' => $blogID), ''title'' => ''A new post'', ''content'' => ''With <b>exciting</b> content...'' ); // Create the context for the request $context = stream_context_create(array( ''http'' => array( // http://www.php.net/manual/en/context.http.php ''method'' => ''POST'', ''header'' => "Authorization: {$authToken}/r/n". "Content-Type: application/json/r/n", ''content'' => json_encode($postData) ) )); // Send the request $response = file_get_contents(''https://www.googleapis.com/blogger/v3/blogs/''.$blogID.''/posts/'', FALSE, $context); // Check for errors if($response === FALSE){ die(''Error''); } // Decode the response $responseData = json_decode($response, TRUE); // Print the date from the response echo $responseData[''published''];


<?php // Example API call $data = array(array ( "REGION" => "MUMBAI", "LOCATION" => "NA", "STORE" => "AMAZON")); // json encode data $authToken = "xxxxxxxxxx"; $data_string = json_encode($data); // set up the curl resource $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://domainyouhaveapi.com"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( ''Content-Type:application/json'', ''Content-Length: '' . strlen($data_string) , ''API-TOKEN-KEY:''.$authToken )); // API-TOKEN-KEY is keyword so change according to ur key word. like authorization // execute the request $output = curl_exec($ch); //echo $output; // Check for errors if($output === FALSE){ die(curl_error($ch)); } echo($output) . PHP_EOL; // close curl resource to free up system resources curl_close($ch);