2012-07-31 13 views
9

Używam znakomitego Parse jako magazynu danych, ale muszę uzyskać do niego dostęp przez PHP (jako być może nieistotną odrobinę szczegółów - mam do niego dostęp przez PHP w celu dla skrobaków na Facebooku rozpoznających na mojej stronie tagi generowane dynamicznie).Pest API REST API i PHP Curl - jak do

Parse zawierają interfejs API odpoczynku i podstawowe instrukcje dotyczące ich używania. Na przykład, aby pobrać obiekt:

curl -X GET \
-H "X-Parse-Application-Id: [My application ID]" \
-H "X-Parse-REST-API-Key: [My Parse Rest API key]" \
https://api.parse.com/1/classes/moods/

Niestety, nie mam pojęcia jak zintegrować to z przykładami PHP Curl, które widziałem online. Zbieram:

curl_setopt($ch, CURLOPT_USERPWD,

.. może być zaangażowany. Tak jak:

curl_setopt($ch, CURLOPT_URL, $Url);

, ale mogę być daleko. Naprawdę przepraszam, że nie jestem w stanie sam tego rozgryźć - ale myślę, że jest to nadal ważne pytanie, ponieważ jest ono bardzo mylące dla osób, które wcześniej nie używały Curl/PHP. Zasadniczo - szukam informacji jako podstawowe jak gdzie umieścić cytowany przykład z docs analizowania ...

góry dziękuję

EDIT:

Hej wszystkim, tutaj jest rozwiązanie jak I skonfigurowałem to. Dziękuję debianek za doprowadzenie mnie do właściwego kierunku.

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;    

.. i tak dalej. Nadzieja, która pomaga.

+0

Witam, mówiłeś, że zorientowali Jak tego użyć. Czy możesz zamieścić tutaj rozwiązanie –

+0

W edycji. Przeprosiny za opóźnienie. –

+0

Rozwiązanie powinno znajdować się w oddzielnej odpowiedzi, * nie * w pytaniu. Usuń go stąd i umieść w nowej odpowiedzi. – Jamal

Odpowiedz

6

Umieścić go w nagłówkach

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

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

Dziękuję bardzo. Z dodatkowym szczypaniem pracowałem. Będę edytować mój pierwotny post, aby to odzwierciedlić, gdy mam pełne rozwiązanie. Co prowadzi do mojego następnego pytania podrzędnego. Mam, wierzę, obiekt JSON w moim PHP. Tekst wyjściowy HTTP_HEADER potwierdza, że ​​został poprawnie pobrany. $ data = curl_exec ($ handle); $ array = json_decode ($ data, true); Kiedy próbuję i echo $ dane w moim html ciała, jednak dostaję "błąd: nieautoryzowane" i echo-out $ array echa out słowo "tablica". Próba $ array ['objectId'] lub $ array [0] .objectId zwraca wartość pustą. Dalsza pomoc ogromnie doceniona ... –

4
<?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); 
?> 
1

używać tej funkcji dla wszystkich obiektów wkładką, obiekt, który powinien być utworzony jako asocjacyjnej z prawidłowym wskaźnikiem

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 ; 

}