目次
CLIから画像をGyazoにアップロードしたかったので、Gyazo APIを使う方法を調べました。備忘録として残します。
アクセストークンの取得
Gyazo APIを使うにはアクセストークンが必要です。以下の手順で取得します。
Gyazoのアプリケーション管理ページにアクセスします。
「New Application」をクリックします。

以下の入力フォームが表示されます。

- Name:アプリケーションの識別名です。自分がわかる名前を入力してください(例:
cli-upload) - Callback URL:OAuth認証後のリダイレクト先URLです。CLIから使う場合は認証フローを使わないので、
http://localhostと入力しておけば問題ありません
登録が完了すると、アプリケーション一覧に追加されます。作成したアプリケーションを選択してください。

アプリケーションの詳細ページが表示されます。「Your Access Token」セクションの「Generate」ボタンをクリックします。

アクセストークンが発行されます。このトークンをコピーして保存してください。

環境変数への設定
トークンを環境変数に設定しておくと便利です。
export GYAZO_ACCESS_TOKEN="取得したトークン"
永続化する場合は ~/.zshrc や ~/.bashrc に追記してください。
curlでのアップロード
画像ファイルをGyazoにアップロードするには、以下のコマンドを実行します。
curl -i "https://upload.gyazo.com/api/upload?access_token=$GYAZO_ACCESS_TOKEN" \
-F "imagedata=@./screenshot.png"
-F "imagedata=@ファイルパス" でアップロードする画像を指定します。
レスポンスの確認
アップロードが成功すると、JSON形式でレスポンスが返ってきます。
{
"image_id": "abcdef123456",
"permalink_url": "https://gyazo.com/abcdef123456",
"thumb_url": "https://thumb.gyazo.com/thumb/abcdef123456",
"url": "https://i.gyazo.com/abcdef123456.png",
"type": "png"
}
Markdownで使う場合は url フィールドの値を使います。

シェルスクリプト化
頻繁に使う場合はスクリプト化しておくと便利です。
gyazo-upload.sh
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: gyazo-upload.sh <image_path>"
exit 1
fi
curl -s "https://upload.gyazo.com/api/upload?access_token=$GYAZO_ACCESS_TOKEN" \
-F "imagedata=@$1" | jq -r '.url'
このスクリプトを使うと、画像のURLだけが出力されます。
./gyazo-upload.sh screenshot.png
実行すると https://i.gyazo.com/xxxxx.png のようなURLが返ってきます。
