https
である必要があるこれらが意外にきつい。
画像アップローダーだと、画像保存の保証が無かったりアップロードシステムに対応するなどの手間がある
そこで一番手軽なGoogleドライブにアップロードした画像を公開する手法を取っている人も多い。
厳密にはダメではない。
Googleドライブならhttps
サーバーであり無料枠もある。
次のコードにIDを貼り付けて画像を送信するWEBサイトが散見されるが、これは私からは非推奨
https://drive.google.com/uc?id={ここにID}
というのもGoogleドライブの画像はURLをリダイレクトする形で画像を表示しているため拡張子付きのデータに直接アクセスできない。
これはつまり次を意味する。
これはiPhone
のようなケータイ端末の場合は画像が表示できるが、PC版のLINE
に画像が表示されない。
どうやらPC版はリダイレクトする画像を弾いている模様。
これはセキュリティ上のバグをついてウィルスが埋め込まれることを防ぐためだろう。
ちなみに同様の理由で画像が削除されなさそうな「GitHub
」にアップロードした画像もPCでは表示されない(こちらもリダイレクト方式)
Netlify
ならOKNetlify
は無料で利用できる静的Webサーバー。
GitHub
との連携が出来ており、GitHub
にPush
するだけで自動的にNetlify
側にもコピーを作ってくれる。
そしてこのNetlify
はアップロードされた画像はリダイレクトされることなく直接アクセスできるのでLINE
に送信してもセキュリティ上問題なく全ての端末で表示できる。
またGitHub
がなくてもフォルダごとドラッグドロップするだけでアップロードできるUIもあるので初めての方はためしてもらいたい。
右上にログインorサインアップボタンが有る
GitHub
のアカウントを作って入るのがオススメNetlify
のアカウントでなくてもGitHub
のアカウントがあれば使用可能。
完全無料で使用することが可能で、更に後ほどGitHub
を使った複雑なこともできるので作っておくのをオススメする。
私はGitHub
にPush
すると自動でNetlify
にもコピーされる設定を使っているが、最初の設定があるので今回はドラッグ&ドロップの方法だけ解説する。
もしGitHub
とNetlify
を自動で連携したい場合は他のサイトを参照のこと。
ログインして画面下部に次のような点線の枠があるはず
ここにフォルダごとドラッグ&ドロップするだけでサイトが出来上がる。圧縮などもする必要はない。
アップロードが完了するとここにURLが表示される。
フォルダ構成は放り込んだものそのままなので/
を使ってアドレスを入力してやれば自由にファイルにアクセスできる。
基本的に1コづつファイルを追加したり消去したりは出来ないという点に注意。
これがNetlify
の特徴。基本的にアップロードしたり削除したりする場合もすべて「フォルダごと」行う。
いちいちファイルの差分を考えなくて良いので簡単といえば簡単。
ローカルでファイルなどを整理した後、またトップ画面から
さきほど生成されたサイトをクリック
Deploys
をクリック
すると、また画面下部にドラッグ&ドロップ用の枠が出ているので、ここにフォルダごと投げてやれば良い。
私はGoogle App Script
を使っている。
次は画像を送信する関数のコード例(ES6)
function sendMessageToUser(id) {
const picUrl = "https://から始まるNetlifyの画像リンクを拡張子まで入れる"
const url = 'https://api.line.me/v2/bot/message/push'
const response =
UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + TOKEN,
},
'method': 'post',
'payload': JSON.stringify({
'to': id, //idはLINE側の送信先
'messages': [{
'type': 'image', //かならずimageに設定
'originalContentUrl': picUrl, //画像本体のリンク
'previewImageUrl': picUrl, //こっちはサムネイル用。小さい画像を用意するのも良い
}],
}),
})
return response
}
Netlify
の良いところは基本的に画像のURLはディレクトリ構造そのままなので、改変も必要ない。Netlify
側で直接URLを入力して画像が表示されるか確認しておこう。
このLINE Bot
で画像を送信するコードに関しては他のサイトでも説明されているので特別説明する必要はないだろう。
もともと私もGoogle ドライブ
から画像を送信していた。
PC版だけ画像が表示されないため試行錯誤したが結局表示できなかった。
GAS
内部で動的に画像を生成するような場合はNetlify
には出来ないが、固定画像を送信するなら基本無料であり画像が削除されることはないため気軽だ。
月間転送量に100G
という制限があるが、容量そのものには制限がなかったため個人ユースであれば十分である。