API REST de Parse y solicitudes PHP Curl: cómo

Estoy usando el excelente Analizar como un almacén de datos, pero necesito acceder a él a través de PHP (como un detalle quizás irrelevante: tengo que acceder a él a través de PHP para que los raspadores de Facebook reconozcan las etiquetas generadas dinámicamente en mi página).

Parse tiene una API Rest e instrucciones básicas sobre cómo usarlas. Por ejemplo, para recuperar un objeto:

curl -X OBTENER \
-H "X-Parse-Application-Id: [ID de mi aplicación]" \
-H "X-Parse-REST-API-Key: [Mi clave de API Rest Parse]" \
https://api.parse.com/1/classes/moods/

Desafortunadamente, no tengo idea de cómo integrar esto con los ejemplos de PHP Curl que he visto en línea. Reúno:

curl_setopt($ch, CURLOPT_USERPWD,

..podría estar involucrado. Como podría:

curl_setopt($ch, CURLOPT_URL, $Url);

pero podría estar muy lejos. Lamento mucho no poder resolver esto por mí mismo, pero creo que sigue siendo una pregunta válida, ya que es muy confuso para aquellos que no han usado Curl/PHP antes. Básicamente, estoy buscando información tan básica como dónde colocar el ejemplo citado de los documentos de Parse ...

Gracias por adelantado

EDIT:

Hola a todos, aquí está la solución tal como la configuré. Gracias a debianek por guiarme en la dirección correcta.

if ($_GET['id']) {
$imageId = $_GET['id']; 
MyApplicationId = '[ID]';
$MyParseRestAPIKey = '[API Key]';
$url = 'https://api.parse.com/1/classes/images/'.$imageId;

$headers = array(
    "Content-Type: application/json",
    "X-Parse-Application-Id: " . $MyApplicationId,
    "X-Parse-REST-API-Key: " . $MyParseRestAPIKey
);

    $handle = curl_init(); 
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);

    $data = curl_exec($handle);
curl_close($handle);

$array = json_decode($data);

$title =  $array->title;            

..y así. Espero que ayude.

preguntado el 31 de julio de 12 a las 11:07

Hola, dijiste que averiguaste cómo usarlo. ¿Podría publicar aquí la solución?

En la edición. Perdón por el retraso. -

La solución debería estar en una respuesta separada, no en la pregunta misma. Quítelo de aquí y póngalo en una nueva respuesta. -

3 Respuestas

ponerlo en encabezados

$headers = array(
    "X-Parse-Application-Id: $MyApplicationId",
    "X-Parse-REST-API-Key: $MyParseRestAPIkey"
);

$handle = curl_init(); 
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);

Respondido 31 Jul 12, 11:07

Muchas gracias. Con un poco de ajuste adicional conseguí que esto funcionara. Editaré mi publicación original para reflejar esto cuando tenga una solución completa. Lo que lleva a mi siguiente sub-pregunta. Tengo, creo, un objeto JSON en mi PHP. La salida de texto HTTP_HEADER confirma que se obtuvo correctamente. $datos = curl_exec($manejador); $matriz = json_decode($datos, verdadero); Sin embargo, cuando intento hacer eco de $data en mi cuerpo html, aparece "error: no autorizado" y al hacer eco de $array se repite la palabra "array". Probar $array['objectId'] o $array[0].objectId devuelve un espacio en blanco. Cualquier ayuda adicional enormemente apreciada .. - jose oldham

 <?php  
 $url = 'https://api.parse.com/1/classes/GameScore';  
 $appId = 'YOUR_APP_ID';  
 $restKey = 'YOUR_REST_KEY';  
 $headers = array(  
   "Content-Type: application/json",  
   "X-Parse-Application-Id: " . $appId,  
   "X-Parse-REST-API-Key: " . $restKey  
 );  
 $objectData = '{"name":"Adarsh", "age":"26"}';  
 $rest = curl_init();  
 curl_setopt($rest,CURLOPT_URL,$url);  
 curl_setopt($rest,CURLOPT_POST,1);  
 curl_setopt($rest,CURLOPT_POSTFIELDS,$objectData);  
 curl_setopt($rest,CURLOPT_HTTPHEADER,$headers);  
 curl_setopt($rest,CURLOPT_SSL_VERIFYPEER, false);  
 curl_setopt($rest,CURLOPT_RETURNTRANSFER, true);  
 $response = curl_exec($rest);  
 echo $response;  
 print_r($response);  
 curl_close($rest);  
 ?>  

contestado el 02 de mayo de 14 a las 05:05

use esta función para insertar todos los objetos, el objeto que debe crearse como una matriz asociativa con el índice correcto

 function insertObject($classname,$object){
 $ appId="xxxxx";
   $restKey="xxxx" 
    $url = 'https://api.parse.com/1/classes/'.$classname;
    $rest = curl_init();
        curl_setopt($rest, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($rest, CURLOPT_FRESH_CONNECT, FALSE);//use cache if available
        curl_setopt($rest, CURLOPT_TIMEOUT, 10); //10 sec timeout
        curl_setopt($rest,CURLOPT_URL,$url);
        curl_setopt($rest,CURLOPT_PORT,443);
        curl_setopt($rest,CURLOPT_POST,1);
        curl_setopt($rest,CURLOPT_POSTFIELDS,  json_encode($object));
        curl_setopt($rest,CURLOPT_HTTPHEADER,
            array("X-Parse-Application-Id: " . $appId,
                "X-Parse-REST-API-Key: " . $restKey,
                "Content-Type: application/json"));

        curl_setopt($rest, CURLOPT_SSL_VERIFYPEER, false);//to avoid certificate error
        $response = curl_exec($rest);
        echo $response ;

}

Respondido 19 Jul 14, 10:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.