我正在尝试制作一个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;
?>
答案 0 :(得分:1)
API示例正常。我刚刚运行了你的代码(当然改变了$ api_dev_key,它首次运行。输出:http://pastebin.com/eyn9tWNS
尝试在脚本顶部添加:
error_reporting(E_ALL);
ini_set("display_errors", "on");
它应该会为您提供更好的错误报告。