Pastebin.comのAPI

過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです. 画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.

テキストを簡単に共有するサイトの中でも有名なPastebin.comというサイトがあります。
そちらにてAPIが公開されているみたいなので実装してみた。

APIキーを取得

まずAPIのキーを取得してきます。
Pastebin.com API
当然ですがAPIを使うにはPastebinのアカウントが必要になります。
ページの序盤の方に(Pastebin.comにログインしていたら)APIキーが表示されます。
このキーを使用します。
pastebin-apikey
 

ソースコード

const string URL = @"http://pastebin.com/api/api_post.php";
const string Key = @"APIKEY";
string text = "";
string path = @"C:\test.txt";
using (StreamReader sr = new StreamReader(path))
	text = sr.ReadToEnd();
	NameValueCollection IQuery = new NameValueCollection();
	IQuery.Add("api_dev_key", Key);
	IQuery.Add("api_option", "paste");
	IQuery.Add("api_paste_code", "text");		// text(None), CSharp(C#)
	IQuery.Add("api_paste_private", "0");		// 0(Public), 1(Unlisted)
	IQuery.Add("api_paste_name", "Untitled");
	IQuery.Add("api_paste_expire_date", "N");	// N(無期限)/10M(10分)/1H(1時間)/1D(1日)/1W(1週間)/2W/1M(1ヶ月)
	IQuery.Add("api_paste_format", type);
	using (WebClient IClient = new WebClient())
	{
		string IResponse = Encoding.UTF8.GetString(IClient.UploadValues(URL, IQuery));
		Uri isValid = null;
		if (!Uri.TryCreate(IResponse, UriKind.Absolute, out isValid))
		{
			throw new WebException("Paste Error", WebExceptionStatus.SendFailure);
		}
		return IResponse;
	}
}

参考サイト: Pastebin API (Post To Pastebin)
PastebinのAPIの呼出は非常に簡単で、WebClientでも動作するほどです。
APIの戻り値はURLだけなので、返り値がURLに変換できない場合はAPIエラーが発生しているということです。