at backyard

Color my life with the chaos of trouble.

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

imgurに匿名で画像アップロードするためのnpmパッケージ "imgur-anonymous-uploader" を作ったので、そちらについて書いていきます。

目次

追記: imgurに匿名で画像アップロードを行いたい方へ

この投稿はimgurに匿名で画像アップロードを行うためのnpmライブラリを作成した、という開発者向けの記事となりますが、imgurで匿名画像アップロードを行うための方法を検索してこちらのサイトをご覧になる方も多いようでしたので、そちらについてのやり方をまとめた記事を別途書きました。

shinshin86.hateblo.jp

上の記事を見れば、imgurにログインすることなく、匿名で画像をアップロードすることが可能です。

是非ご覧になってみてください。

追記は以上となります。

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が必要になるので、そちらを控えておくようにしてください。