Ошибка API PasteBin? не разрешая простой пост

Я пытаюсь сделать запрос php API, чтобы просто сделать простую вставку в pastebin, и я нашел пример на http://pastebin.com/api, и это довольно прямолинейно, поэтому я не думал, что будут какие-то проблемы. Но похоже пример не работает. Я продолжаю получать ответ

Bad API request, invalid api_option

Но вы можете ясно видеть, что он устанавливает api_option=paste в строке, которую он создает...

а в документации написано

Creating A New Paste, [Required Parameters]
Include all the following POST parameters when you request the URL:

1. api_dev_key - which is your unique API Developers Key.
2. api_option - set as 'paste', this will indicate you want to create a new paste.
3. api_paste_code - this is the text that will be written inside your paste.

Leaving any of these parameters out will result in an error.

Итак... я подумал, что это выглядит правильно, помимо приведенного ими примера.

У кого-нибудь есть идеи, что здесь происходит?

<?php 


$api_dev_key            = '1234'; // your api_developer_key
$api_paste_code         = 'some random text to test'; // your paste text
$api_paste_private      = '0'; // 0=public 1=private
$api_paste_name         = 'savelogtest'; // name or title of your paste
$api_paste_expire_date  = '10M';
$api_paste_format       = 'php';
$api_user_key           = ''; // if invalid key or no key is used, the paste will be create as a guest
$api_paste_name         = urlencode($api_paste_name);
$api_paste_code         = urlencode($api_paste_code);


$url                = 'http://pastebin.com/api/api_post.php';
$ch                 = curl_init($url);

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_option=paste&api_user_key='.$api_user_key.'&api_paste_private='.$api_paste_private.'&api_paste_name='.$api_paste_name.'&api_paste_expire_date='.$api_paste_expire_date.'&api_paste_format='.$api_paste_format.'&api_dev_key='.$api_dev_key.'&api_paste_code='.$api_paste_code.'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);

$response           = curl_exec($ch);
echo $response;


?>

person brybam    schedule 14.05.2011    source источник


Ответы (1)


Пример API работает нормально. Я только что запустил ваш код (конечно, изменил ключ $api_dev_key, и он сработал с первого раза. Вывод: http://pastebin.com/eyn9tWNS

Попробуйте добавить это вверху вашего скрипта:

    error_reporting(E_ALL);
    ini_set("display_errors", "on");

Это должно дать вам лучший отчет об ошибках того, что происходит.

person Mr.Boon    schedule 24.08.2011