スマホで見ているページをいろいろなツールにシェアする感覚で、 Craft CMS に保存しておけないかな、とおもってあれこれ考えてみる。
Craft CMS 側のデータが増えすぎそうな気はするのだが、、、まぁそれも含めて経験というかんじで。
なにをつかってやるかなぁということでまずはショートカットアプリで試してみる。
apple shortcut でwebページのURLを取得して表示する(値取得のデバックにも使える)画像大量 - Qiita
https://qiita.com/kajirikajiri...
こちらの記事を読んで参考にさせてもらった。
そもそも iOS メニューの共有部分とかどういう風にでるものなのか、調べるのもなかなか、という感じだった。
ショートカットから受け取った物をどう取るのか、とかからそもそもわかっていなかったけど、ショートカットの入力(input from share sheet)というのがあるというところから。
編集作業自体は Mac でやる方がやりやすいのだけど、 iPhone で編集する方が色々サジェストが見やすいような気がする。
タイトルはどう取るかよくわからなかったのだけど
iOSでタイトルとURLをコピーするショートカット
https://r7kamura.com/articles/...
この辺の記事とかを読んで、とりあえずショートカットの入力から名前を取得でとれたっぽい。
共有したページのタイトルとURL以外に、メモとか残したいこともあるだろうから、テキスト入力できるようにしておく。
取得した内容をあとは Craft 側に投げる。
GraphQL で投げるときはどうするのがいいのだろう??と思って調べてみたが、Form でやってるサンプルをどこかで見た気がするので、 Formでやる。
Get contents で POST ができる。
キーを query
にして、 value
に query
の中身を書く。
iOS 上でこれを書くのはさすがにしんどいので、 Mac で書く。
取得したURLやタイトルをクエリの中でどうやって使うんだろうなぁ、、と考えていたが、iOS で編集画面を見ると色々サジェストが出る。
わざわざ変数にセットするとかしなくてもよかった。
共有したURL、インプットに入れたテキストや取得した名前など普通にとれた。
なんだー。
これで Safari で開いているページを共有して、 Craft CMS に保存することができた。
まぁ、動いたけど調整内容はまだまだ。
- oEmbed プラグインで作っているフィールドにはどうやって mutation するのかがイマイチわからなかった。(Craft CMS 側の話)
- メモとしてテキストインプットするときに、改行してしまうとそれがそのまま渡って query のエラーになるので、そこも調整は必要そう。
- Safari 以外で Twitter から共有とかすると期待した感じにならないので、そこは要調整。
とはいえ、とりあえず使える感じになったので、使いながらアップデートしていきたい。
いろいろなサービスのスマホアプリだと共有の機能とか当然のようにうごいてて、ありがたいなぁと改めて。
ReactNative とかで作るとこういうのもつくれるんだろうか?
他の1つのコードから複数のOS用アプリを作れる系のとかだとどうなんだろう。
今時点ではつくれなくても、できることくらいは把握しておかないとまずいな。