2013-03-09 16 views
6

私はTampermonkey(Greasemonkeyと同じですが、Chromeの場合)を使ってスクリプトを作成しています。私が書いたテキストをペーストビンに貼り付けることです。テキストは他のウェブサイトに書かれています。私はGM_xmlhttpRequestを使ってそれを行うことができるのを見ましたが、うまくいきません。 これは私のコードです:JavaScriptを使ってペーストビンにテキストを貼り付けるには

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つの最後の行が正常に動作していないがされていることだが、私は理由を知りません。最初の機能は完璧に機能します。

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

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

答えて

5

私はあなたが望むものを正確に行うシンプルなAPIを開発しました。

Includes : Persist BETA

ペーストビンは、APIを持っていますが、それは、現在の編集ポストをサポートしていません。私はあなたがペーストビンを使用して、編集を必要としない場合

ペーストビン...ペーストビンに特有とPASTEBIN2二つの異なる「サービス」を作成するために必要な理由です
。それ以外の場合は、PASTEBIN2を使用します。

最初に必要なのはUnique Developer API Keyです。
次に、User API 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.write({ 
    service : "PASTEBIN", 
    value : "...", 
    data : { 
     api_dev_key  : "...", 
     api_user_key : "...", 
    }, 
    onload : function (result) { 
     alert("http://pastebin.com/" + result.key); 
    } 
}); 

新しいポストを作成する

Persist.read({ 
    service : "PASTEBIN", 
    key  : "..." 
    data : { 
     api_dev_key  : "...", 
     api_user_key : "...", 
    }, 
    onload : function (result) { 
     alert("\nValue: " + result.value); 
    } 
}); 
+0

ありがとうございました!それは本当にうまくいく。しかし私はいくつかの質問があります:プライベートペーストを投稿できますか? そして、ページを読み込むと関数が起動します。スペースバーを押すか、キーを入力したときに、どのように呼び出すことができますか? – VictorSeven

+0

はい、[Pastebin API](http://pastebin.com/api#7)を読むことをお勧めします。次に、「データ」に必要なパラメータを追加します。 – w35l3y

+0

PASTEBINは動作しますが、PASTEBIN2(同じ開発者とユーザーキー)で編集するとコンソールでエラーが発生します。Array [2] 0: "request.error – Sint

関連する問題