2015-12-03 2 views
0

В попытке использовать GET statuses/user_timeline API Твиттера я написал себе некоторый хороший PHP скрипт для создания всех необходимых значений, но если я хочу, чтобы выполнить это, он просто дает мнеTwitter не принимает Curl PHP, но Linux»

строка (0) ""

с кодом 400, что означает, в соответствии с Твиттера API Response Codes

Запрос был недействительным или не может быть иначе служил , Далее будет описано сопроводительное сообщение об ошибке. В API v1.1 запросы без аутентификации считаются недействительными и будут давать этот ответ.

Но этот же запрос работает нормально в обычном терминале curl.

Вот отрывок из моего сценария, который генерирует Linux-Command и выполняет запрос:

$auth_str = "Authentication: OAuth ..."; 
$headers = array($auth_str); 
// ... 

if($method == "POST") 
{ 
    echo "curl --request 'POST' '{$url}' --data '{$fields_string}' --header '{$auth_str}' --verbose"; 
} else 
{ 
    echo "curl --get '{$url}' --data '{$fields_string}' --header '{$auth_str}' --verbose"; 
} 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url."?".$fields_string); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER , true); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
$content = curl_exec($ch); 

ответ

0

я не получил этот конкретный сценарий для работы, но я нашел TwitterOAuth, который является очень полезной PHP библиотекой, которая сделала мою жизнь намного проще.

0

Вы должны отделить GET/POST в двух различных секции, подобной вашей командной строки. Например,

$ch = curl_init(); 
if($method == "POST"){ 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); 
} 
else{ 
    curl_setopt($ch, CURLOPT_URL, $url."?".$fields_string); 
} 
// remove CURLOPT_CUSTOMREQUEST 

// rest of the curl opts go here! 
Смежные вопросы