2012-04-10 2 views
0

У меня есть мой код.Curl не работает для helloxt 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); 

?> 

Это отображает ответ возврата как «ключ приложения не указан». Но то же самое работает, если я пишу ключ api и ключ пользователя через форму (form-post). Когда я отправляю ключ api и пользовательский ключ, используя форму, я получаю ответ как.

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

Но я не мог сделать с завитком. Что пошло не так. Пожалуйста, руководство мне Спасибо Haan (PS: FYI, API-интерфейс для hellotxt здесь http://hellotxt.com/developers/api.)

ответ

2

вы должны послать массив в качестве почтовых полей, теперь вы отправляете JSon закодированные строки

так вы следует заменить это:

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

с

curl_setopt($c, CURLOPT_POSTFIELDS, $post_vars); 

где

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

Edit: также рассмотреть ответ Honoki дал .. Я голосовал, потому что он имеет точку также, что вам нужно «сказать» завиток, который планируется отправить сообщению

+0

я редактировал свой код, как у сказал, но ошибка такая же .. проверить мой код выше (который я редактировал сейчас, это верно) ?? – hjaffer2001

+0

@ hjaffer2001, как я уже сказал в обновлении, вы должны добавить строку, предложенную Honoki; обе эти вещи необходимы (просто мой ответ или его) – mishu

+0

oops, я сделаю это сейчас. еще раз спасибо. lemme попробуйте сейчас. – hjaffer2001

2

У вас есть чтобы указать, что вы хотите сделать запрос POST, как показано ниже.

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

это dnt работает для меня. :( – hjaffer2001

1

Попробуйте удаление это строки из кода:

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