Как вставить текст в Pastebin с помощью JavaScript

Я использую Tampermonkey (так же, как Greasemonkey, но для Chrome), чтобы сделать скрипт. Идея состоит в том, чтобы вставить текст, который я пишу, в Pastebin. Текст был написан на другом сайте. Я видел, что могу сделать это с помощью GM_xmlhttpRequest, но это не работает. Это мой код:

    var charac = new Array(50);
    var i =0
function callkeydownhandler(evnt) {

   var ev = (evnt) ? evnt : event;
   var code=(ev.which) ? ev.which : event.keyCode;
   charac[i]= code;
        i++;
}
if (window.document.addEventListener) {
   window.document.addEventListener("keydown", callkeydownhandler, false);
} else {
   window.document.attachEvent("onkeydown", callkeydownhandler);
}

GM_xmlhttpRequest({
  method: "POST",
  url: "http://pastebin.com/post.php",
  data: "user=mysuser&password=mypassword", //as you can imagine I use my credentials
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  onload: function(response) {
    alert("posted");
    document.getElementById("paste_code").value+=charac[i];
    document.getElementById("submit").click();
  }
});

Я уверен, что две последние строки не работают должным образом, но я не знаю почему. Первая функция работает отлично.

Что я делаю плохо? Как я могу это исправить?

Спасибо! знак равно

1 ответ

Решение

Я разработал простой API, который делает именно то, что вы хотите.

Включает в себя: постоянная бета-версия

У Pastebin есть API, но в настоящее время он не поддерживает редактирование сообщений.
Вот почему мне нужно было создать два разных "сервиса", специфичных для pastebin... PASTEBIN и PASTEBIN2

Если вам не нужно редактировать, используйте PASTEBIN. В противном случае используйте PASTEBIN2.

Первое, что вам нужно, это уникальный ключ API разработчика.
Тогда вам понадобится ключ API пользователя.

Вот несколько примеров использования моего скрипта:

Создание нового поста

Persist.write({
    service : "PASTEBIN",
    value   : "...",
    data    : {
        api_dev_key     : "...",
        api_user_key    : "...",
    },
    onload  : function (result) {
        alert("http://pastebin.com/" + result.key);
    }
});

Редактирование существующего поста

Persist.write({
    service : "PASTEBIN2",
    mode    : -1,   // prepend
    key     : "..."
    value   : "...",
    data    : {
        api_dev_key     : "...",
        api_user_key    : "...",
    },
    onload  : function (result) {
        alert("Post #" + result.key + "\nNew value: " + result.value);
    }
});

Чтение существующего поста

Persist.read({
    service : "PASTEBIN",
    key     : "..."
    data    : {
        api_dev_key     : "...",
        api_user_key    : "...",
    },
    onload  : function (result) {
        alert("\nValue: " + result.value);
    }
});
Другие вопросы по тегам