2012-04-10 4 views
0

Ich habe meinen Code so.Curl funktioniert nicht für hellotxt API

<?php 
$post_vars = array('app_key'=>'my_api_key', 'user_key' => 'my_user_key'); 
$c = curl_init(); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($c, CURLOPT_POST, 1); 
curl_setopt($c, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json')); 
curl_setopt($c, CURLOPT_URL, 'http://hellotxt.com/api/v1/method/user.validate'); 
curl_setopt($c, CURLOPT_POSTFIELDS, $post_vars); 

$content = curl_exec($c); 
print_r($content); 
curl_close($c); 

?> 

Dies zeigt eine Antwort als "App-Taste nicht angegeben" an. Aber das gleiche funktioniert, wenn ich den API-Schlüssel und Benutzerschlüssel über ein Formular (Form-Post) post. Wenn ich den API-Schlüssel und den Benutzerschlüssel über ein Formular abschicke, bekomme ich die Antwort als.

<rsp status="OK"><nick>testinguser</nick><name>testinguser</name><avatar>  http://hellotxt.com/avatar/testinguser/medium/image.jpg</avatar></rsp> 

Aber ich konnte nicht mit der Locke tun. Was schief gelaufen ist. Bitte leite mich Dank Haan (PS: FYI, ist die api für HelloTXT hier http://hellotxt.com/developers/api.)

Antwort

2

sollten Sie ein Array als Post Felder senden, jetzt sind Sie Sie eine json codierte Zeichenfolge zu senden

so diese ersetzen soll:

curl_setopt($c, CURLOPT_POSTFIELDS, '{app_key:"my_api_key", user_key:"my_user_key"}'); 

mit

curl_setopt($c, CURLOPT_POSTFIELDS, $post_vars); 

wo

$post_vars = array('app_key'=>'my_api_key', 'user_key' => 'my_user_key'); 

bearbeiten: Sehen Sie auch die Antwort Honoki gab .. Ich habe, weil er einen Punkt hat auch, müssen Sie locken zu „sagen“, dass Sie planen, Post senden

+0

ich meinen Code bearbeitet haben, wie u gesagt, aber der Fehler ist das gleiche .. meine obigen Code überprüfen (was ich jetzt bearbeitet haben, Ist das korrekt) ?? – hjaffer2001

+0

@ hjaffer2001 Wie ich im Update gesagt habe, sollten Sie auch die von Honoki vorgeschlagene Zeile hinzufügen; Beide diese Dinge werden benötigt (nur meine Antwort oder seine) – mishu

+0

oops, ich werde es jetzt tun. Danke noch einmal. Lemme versuche es jetzt. – hjaffer2001

2

Sie haben um anzugeben, dass Sie eine POST-Anfrage wie folgt machen möchten.

curl_setopt($c, CURLOPT_POST, 1); 
+0

diese dnt Arbeit für mich Mann. :( – hjaffer2001

1

Versuchen diese Zeile aus dem Code entfernen:

curl_setopt($c, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json'));