gyazo api
公式の実装例
gyazo official browser extention
https://github.com/gyazo/gyazo-browser-extension
https://chrome.google.com/webstore/detail/gyazo/ffdaeeijbbijklfcpahbghahojgfgebo?hl=ja
gyazo official linux client
https://github.com/gyazo/Gyazo-for-Linux
Gyazoへのアップロードを実装する方法
DeviceIDが未知の場合の静止画のアップロードAPI
gyazo.comのeasy_auth apiを使うのが最も簡単
アップロード後にブラウザでGyazoを開いたタイミングでそのユーザーが所有する画像になるしくみ
公式ドキュメント
https://gyazo.com/api/docs/image
Gyazoアプリケーションを申請する必要がある
https://gyazo.com/oauth/applications
New Applicationをクリックしてフォームを適当に埋める
https://gyazo.com/8b4d1aaef678fd15f7c97c7c3cb0a4a9
ここをクリック
https://gyazo.com/2ba86966e4044152b2a2bba0b2db1b52
ここの画面のclient_idをメモする!
https://gyazo.com/8ef661606c852cead8ea7578cad49d4d
実装例
https://github.com/gyazo/gyazo-browser-extension/blob/master/src/libs/postToGyazo.js
https://github.com/ssig33/video-capture/blob/master/src/pages/Background/gyazo.js
Content-Type
multipart/form-data
POST https://upload.gyazo.com/api/upload/easy_auth
client_id
required
string
エンコーディング:ASCII
image_url
required
string
エンコーディング:base64 ASCII
画像バイナリをbase64エンコードしたものをdata:スキームでURL文字列にしたもの
https://ja.wikipedia.org/wiki/Data_URI_scheme
例
code:data
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
referer_url
required
string
エンコーディング:ASCII
キャプチャしたWebサイトのURL
title
optional
string
エンコーディング:UTF8
キャプチャしたWebサイトのタイトル
hr.icon
DeviceIDが既知の場合の静止画のアップロードAPI
ネイティブアプリなどで、DeviceIDのファイルを読むことができる場合はより高度なAPIを使える
macOSの場合
~/Library/Gyazo/id にDeviceIDがある
Windowsの場合
%APPDATA%\Roaming\Gyazo\id.txt にDeviceIDがある
Linuxの場合
~/.gyazo.id にDeviceIDがある
実装例
https://github.com/gyazo/Gyazo-for-Linux/blob/master/src/gyazo.rb
https://github.com/yuiseki/twint-gyazo/blob/master/main.py#L18
Content-Type
multipart/form-data
POST https://upload.gyazo.com/upload.cgi
id
required
string
エンコーディング:ASCII
DeviceIDを指定する
file_name
required
string
エンコーディング:UTF8
ファイル名を指定する
面倒だったら空文字でもOK
検索とかに使えるので便利
imagedata
required
string
エンコーディング:base64 ASCII
画像バイナリをbase64エンコードしたものをdata:スキームでURL文字列にしたもの
scale
requied
float
エンコーディング:ASCII
画面のDPI Scaleを指定する
たとえば4Kのディスプレイで150%表示にしてるときは1.5を指定する
created_at
optional
string
エンコーディング:ASCII
ファイルの作成日時にしたいunixtimeを指定する
Gyazo内では作成日時順に並ぶのでそれをコントロールしたければ必要
このフィールドを指定しないと、アップロードした日時がcreated_atになる
collection_id
optional
string
エンコーディング:ASCII
ファイルアップロード時に追加したいコレクションのIDを指定する
自分の作成したコレクション、または自分に権限がある共有コレクションしか指定できない
metadata
optional
string
エンコーディング:UTF8 JSON
検索とかに使えるので便利
以下のKey-Valueをjsonでシリアライズした文字列
app
アプリケーション名
title
画面/画像のタイトル
url
リファラーURL
desc
その他description
ここに #hoge とか書いておくとGyazo内検索用のハッシュタグになるので便利