GooglePhotoの共有リンクから画像の直リンクを得る方法(iOS)
要約:Googleフォトの共有リンクにHTTP GETして、レスポンスから画像のリンクが得られる!
GooglePhotoで画像をリンクで共有すると、一旦GooglePhotoサービスを開いてから画像を見ることになるが、例えばブログであったり、DiscordのようなSNSでは画像の直リンクから画像自体を張り付けられる。
作ったショートカットのリンク。
使い方はGooglePhotoで写真を選んで共有で権限渡したらできるはずですが、もしうまくいかなかったらショートカットを編集して内容を取得の部分に直接URL貼るとおそらくうまくいきます!
各工程をとりあえず説明
テキスト置き換え
いろいろ邪魔な記号を置き換える。
テキストの内容を取得とか
まずHTTP GETしていろいろ情報をもらう
情報の中から欲しいリンクの部分だけ抜き出す。
複数の画像を共有してるのを想定してリストアップする。
重複をifで調べようとすると時間が長くなるのとこのショートカットアプリに慣れてないからかけないと思い、連想配列を使った重複の消し方をする
空の連想配列を用意する。仮にEmptyという名前にする。
さっきリストアップしたリンクは{a,a,b,c,b,a}のように被ってる。
Empty.a=なんでもいい数字n;みたいな感じで宣言していくと、Empty.a=n,Empty.a=nってしたとしてもaが上書きされて重複を消せる。
これをリンクの数だけやるとEmpty={a:n,b:n,c:n}となってEmptyのすべてのキーを出したら重複を消せる。
そしてhttpsとか必要なものを付けたら完成。
ノーコードで便利になるかと思いきや、ショートカットの変数システムが独特でめちゃくちゃ使いづらかった。ショートカットではjavascriptが動くそうなので、そっちを使ったらずっと楽だったかもしれない。あるいはGASでウェブアプリ書いてリクエストするだけのほうが書きやすさとか含めてよいかもしれない。