at backyard

Color my life with the chaos of trouble.

imgurに匿名で画像アップロードするためのnpmパッケージ "imgur-anonymous-uploader" を作った

imgurについて

imgur.com

imgur というオンラインで画像を共有できるSNSがある。
日本では某掲示板でよく画像アップローダーとして利用されているので、たぶんそちら経由でこのサービスの存在を知っている人のほうが多いかもしれない(サービス自体は知らなくとも、名前は聞いたことある、とか)。

こちらのサービス、APIも良い感じに提供されており、しかもimgur APIは非商用、もしくはオープンソースなら無料で利用が可能となっているとのこと。
(ドキュメントには probably free と表現されているので、まあそこは常識の範囲名で使用してね、ということかしらん?一応下に引用でそこの記述を貼っておいた)

参照したドキュメント: Imgur API

The Imgur API is free for non-commercial usage. Your application is probably free if you don't plan on making any money with it, or if it's open source.

そんなimgurから提供されている機能の一つ、匿名での画像アップロード機能をJavaScript (Node.js) から簡単に行うためのnpmパッケージを作った。

github.com

インストールは下記のコマンドで行える。

npm install imgur-anonymous-uploader
# or
yarn add imgur-anonymous-uploader

imgurのclient id発行方法について

なお、こちらのnpmパッケージ、実際に使用するためにはimgurでClient IDを発行する必要があるので、匿名での画像アップロードとはいえ、開発する側の人間はimgurにアカウントを作成する必要がある。
ただし、開発者登録とかは必要なく、アカウントを作成してから、こちらにアクセスすれば、Client IDは発行できる。

Client ID発行時、Authorization typeAnonimous usage~ を選択した上で行うこと。 (Anonimous usage ~を選択した場合、Authorization callback URL は空でも行けるようだが、初回submit時に入力されていないことによるバリデーションエラーが出たりした。再度submitすると今度はそのまま行けたが、、単純にimgurの画面側のバグとかだったりするのだろうか?)

f:id:shinshin86:20200724140030p:plain

imgur-anonymous-uploaderの使い方

使い方は上に貼ったGitHubリポジトリREADMEを見ていただければ、問題なく使えると思う。

一点補足しておくと、imgurでは匿名での画像アップロードを行った際に、返り値としてdeletehashという削除するためのhashが返ってくる。
もしアップロードした画像を削除したくなったときはそちらの deletehash を使用することになる。

imgur-anonymous-uploader でも一度アップロードしたものは、こちらのdeletehashを用いて画像削除できるように機能(※)を用意してあるので、気軽な気持ちで使ってみてもらえたらと思います。
※削除する場合はアップロードした際に返されるdeletehashが必要になるので、そちらを控えておくようにしてください。