Pastebin.com发布

时间:2011-09-26 20:23:59

标签: javascript post pastebin

我正在尝试通过Javascript中的弹出窗口发布新的Pastebin。我得到的问题是它说“错误的API请求,无效的api_option”

我正在使用的链接: http://pastebin.com/api/api_post.php?api_dev_key=<KEY>&api_paste_name=T‌​ITLE&api_option=paste&api_paste_code=SOMETEXT

它表示将api_option作为粘贴。我试过查找其他例子,但还没有运气。大家都遇到过这个问题吗?

3 个答案:

答案 0 :(得分:3)

您是否有机会要求发布数据而不是GET?

此外,将API密钥放在互联网上可能不是最好的想法。

答案 1 :(得分:3)

您如何向Pastebin提交此请求?是通过POST还是GET?我最好的猜测是,您发送了GET个请求,API需要POST

答案 2 :(得分:0)

尝试一下:

   let api = {
      option: "paste",
      user_key: "XXXXXXXXXXXX",
      dev_key: 'XXXXXXXXXXXX',
      paste_name: "MyTitle",
      paste_format: "JSON",
      paste_private: 0,
      paste_code: ""
};

  let request = new XMLHttpRequest();
  request.open('POST', 'http://pastebin.com/api/api_post.php', true);
  request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  data['test'] = 'Yeah PasteBin!';
  dataString = 'api_option='+api.option+'&api_user_key='+api.user_key+'&api_dev_key='+api.dev_key+
'&api_paste_name='+api.paste_name+'&api_paste_format='+api.paste_format+
'&api_paste_private='+api.paste_private+'&api_paste_code='+data;
request.onreadystatechange = function() {
    if (request.status == 200 && request.readyState == 4) {
        alert("URL to new pastebin file: " + request.responseText);
    }
}
  request.send(dataString);

代码的主要问题是将所有内容都放在请求URL中,如果它是GET请求,那很好。 PasteBin的URL:api / api_post.php需要POST请求(请注意名称吗?),因此您必须像上面显示的那样将其发送到正文中。