7

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();
  }
});

最後の 2 行が正しく機能していないことは確かですが、その理由はわかりません。最初の機能は完璧に機能します。

私は何が悪いのですか?どうすれば修正できますか?

ありがとうございました!=)

4

1 に答える 1

6

私は、あなたが望むことを正確に行う単純な API を開発しました。

内容 : 永続ベータ版

Pastebin には API がありますが、現時点では投稿の編集をサポートしていません。
そのため、pastebin に固有の 2 つの異なる「サービス」を作成する必要がありました... PASTEBIN と PASTEBIN2

編集が不要な場合は PASTEBIN を使用してください。それ以外の場合は、PASTEBIN2 を使用します。

最初に必要なのはUnique Developer API Keyです。次に、 User API Key
が必要になります。

私のスクリプトの使用例をいくつか示します。

新しい投稿を作成する

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);
    }
});
于 2013-03-09T20:54:01.293 に答える