見出し画像

【無料・ノーコード】Notionとkindleを連携させる方法【iPhone利用】

こちらで紙の本を登録する方法を教えてくれたnoteと、自分でいじったものについて書きました。

しかし現代は紙の本だけでなく電子書籍もありますね。
私も愛用しています。大量の本を持ち歩けて便利!

電子書籍は色々ありますが、今回はkindleをNotionに登録するiOSショートカットの作り方です。

最終的には上記記事で紹介しているISBNでの登録のnoteにあるやりかたにつながりますのでそちらも合わせてみてくださるとわかりやすいと思います!

目標:kindleを開いた状態で使う

ショートカットはそのボタンを押したらあらかじめ入れていた動きをする、というものを作れるほか、kindleなどのアプリのシェアという部分から利用することも可能です。

そのため、今回は使いやすさを考えてkindleで開いた本をそのまま登録できるよう、シェアからショートカットのアクションを動かすようにしていきます。

1.準備するもの

①Notionの読書管理用ページ

元々あるものを使用可能です!今回はTitleに題名、そのほかテキストで著者名、ファイル&メディアで書影を入れる簡素なものにしています。読んでいるかどうかのステータスはステータスで制作し、積読が表示される状態で固定しています。変更できるようにしたい場合は上記の内ページを作る記事でやっている種類の選択を使えば可能です。

他にプロパティがあっても大丈夫です。作った部分にだけ文字が入り、残りはNotionで変更する形をイメージしています。

この管理ページのデータベースをPCで開きます。フルページを選択してデータベースIDを取得しておきます。最後の方で使います。

赤色の部分がデータベースのID

②NotionAPIのアカウント

NotionAPIは無料で利用できます。とてもやさしい。

上記サイトでアカウントを作成してください。

その後、『新しいインテグレーション』を押して下記のように入力して新規作成します。

名前:管理用の名前です(本棚用、bookなど)
ロゴ:なくて大丈夫です。
関連ワークスペース:使っているワークスペースを選択します
機能:デフォルトのままでOKです。
NotionAPIの中身

このトークンは最後に使用するので取得しておいてください。

③Notionの読書管理ページのデータベースにコネクトを追加する

これを忘れることが多いです。
この段階でやっておきましょう。

管理ページのデータベースをPCで開きます。フルページを選択します。
①で取得したデータベースIDがURL欄に出ているページです。
右の「…」をクリックして出てくるメニュー^の下の方に「コネクトの追加」があります。
「コネクトの追加」にカーソルを充てると横に「Bardeen」など色々な名前が出てきますので、そのページの一番下まで降りていきます。

そうすると作成したインテグレーションの名前がありますので、それをクリックして登録します。

④ショートカットをインストールする

最初、やり方を読みながら実際に手を動かそうとしてショートカットというものが入ってないぞ!?となりました。

最初からは入っていない場合があるのか、消してしまったのか。

どちらの場合もあるのでまずはショートカットというアプリが入っているか確認しましょう。

入っていない場合も、App Storeで無料で取得できますので安心してください。
App Storeで「ショートカット」と検索すると出てきます。
リンクも貼っておきますね。

ショートカットのアイコン

では、さっそく作成していきましょう!

2.ショートカットを開いて新規を作成

ショートカットアプリを開きます。
右上の『+』を押して新規作成ができます。

ショートカットアプリの新規作成ボタンは左上のプラス記号
初期画面。すでに作成済みなのはご愛敬

3.さっそく作っていく。

説明画像。始まりから置き換えまで
kindleから開けるように。また著者名の選択までの画面

(1)kindleから動くように設定する

まず、右上の×の隣にある青色の丸ボタンを押して設定を開きます。

この中の『共有シートに表示』を押して利用できる状態にします。(右側のマークが緑色になっていれば大丈夫です)

そうすると、一番上に『「共有シート」から「任意」の入力を受ける』という表記が表示されます。

もし入力がない場合の動きは停止して応答か入力を要求でいいと思いますが、上の画像は試作の時にクリップボードを取得にしたままでした。
これでも大丈夫です。

(2)HTMLからリッチテキストを作成で共有ボタンを押してタイトルなどを取得する

次に↓のアクションを検索から『HTMLからリッチテキストを作成』を検索して登録します。

入力は変数『ショートカットの入力』を選びます。クリップボードからも候補に挙がっていたりしますがショートカットの入力を選んでください。

変数というのは自分で入力した文字ではなく、追加したアクションなどのことです。

恐らく初期は「『HTML』からリッチテキストを作成」と出ていると思います。その『HTML』の部分をタップして出てくる「マジック変数を選択」を選び、一つ上に出てくる『ショートカットの入力』を選択してください。

他の変数が入っている場合は、すでに入っているものをタップして出てくるメニューから変数の消去を選択して消してください。

これで、タイトルと著者名が取得できました。
以下のような文字列で取得しています。

『書籍タイトル』( 作者名 著)

(3)著者名を取得する

次に『一致するテキスト』をまたアクションから検索して追加します。

~で=に一致となっています。
~の部分に変数で上のリッチテキストを作成を入れます。

=の部分は以下のように入れます

\(.*著

最初の「\」は「(」を認識させるために入れています。

「.*」は全て、という正規表現です(という認識してます)
これを入れることで、「(」から「著」までの文字列を取得しています。
これで著者名を取得できました。

しかし、(と著という文字が邪魔です。「.*」は作者名が入っているのでそのままで大丈夫です。
名前だけをスマートに抜き出したいです。

そこで、アクションから『テキストを置き換え』を追加します。

まずは頭の部分を削除します。

~の=を―に置き換えとなっています。

~の部分に変数として上のアクションを入れます。

=の部分に置き換えたい「\(」を入れます。この部分を次に入れる文字に変換します。

その次に入れる文字ですが、今回は何も入れる必要がありません。消したいだけなんです。
そのため、―には何も入れず、空白にします。

全部消したのにうっすらと文字が見えていると思いますが、例文なので中には何も入っていない状態です。

あとは同じように『テキストを置き換え』を入れて、今度は置き換える「著」をいれます。

同じように置き換え後はいらないので空白のまま。

これで著者名が獲得できました。

分かりやすいようにこのアクションの名前を変更します。

テキスト、アラームなど何でもいいのでアクションを追加します。

変数の部分に『テキストを置き換え』を選択します。

アクションの中の変数をもう一度タップすると、変数名、変数を消去などが出てくるメニューが開きますので、変数名を選択します。

分かりやすいように「著者名」と入れます。

今回作ったアクションは削除します。

これで名前の変更も完了です。

(4)タイトルを取得する

著者名を取得するのと同じ流れです。タイトルは『』に入っているので、今度は『.*』といれてタイトルを取得します。

置き換えから置き換えまで
タイトルを取得する

置き換えも同じように。画像のように『と』をそれぞれ空白に置き換えます。

分かりやすいようにこのアクションの名前を変更します。

先ほどと同様にアラームなどのアクションを追加します。

変数の部分に今回作成した『テキストを置き換え』を選択します。

アクションの中の変数をもう一度タップすると、変数名、変数を消去などが出てくるメニューが開きますので、変数名を選択します。

分かりやすいように「タイトル」と入れます。

今回作ったアクションは削除します。

名前の変更の完了です。

これでタイトルまで取得できました。

(5)書影を取得する

これだけでも十分ですが、私がお手本にしたい紙の本用のショートカットは書影、つまり表紙が入っています。

これが欲しい。私も入れたい。ここが結構悩みましたがPC画面で取得しているショートカットの中のURLを開き、検証画面を使って解消できました。

今回は自分でURLの最初の方を打ち込んでいますが、打ち込まずにショートカットの機能で取得できるようにできたらそれが一番なのでいい方法があったら教えてください!

では、始めます。

書影取得
書影(表紙画像)を取得する

アクションで『一致するテキスト』を選び追加します。

変数部分は一番最初に入れた『ショートカットの入力』を選びます。

取得したいのはURLなので「http.*」で「http」以降のURLを取得することができます。

次に『URLの内容を取得』を追加して取得したURLの内容を手に入れます。

ここは表紙とタイトル、著者名、説明文が乗っている特別ページになっています。

ここから画像を取得します。

『入力からイメージを取得』でURLの内容から画像を取得します。

Notionのプロパティにある「ファイルとメディア」で書影を管理しているので、そこにこの画像を入れたいのですが、画像をそのまま貼り付けることができません。(画像を一度ダウンロードしなくちゃいけないので容量がきついです)。

そのため、まずは画像のパス(名前と拡張子)を取得します。

『イメージの詳細を取得』を追加し、「ファイルパス」を上のイメージを取得したアクションから取得します。

次に、URLとして完成させます。

『テキストを結合』を選び、Amazonの画像のURLに組み立てます。

https://m.media-amazon.com/images/l/
ファイルパス

上記2つをカスタムで結合します。
カスタムの後ろは空白で大丈夫です。

これで書影も取得できました!

欲しい情報はこれでOKです!
では、これをNotionに入れていきます。

(6)Notionに入れる動作を作る

アクションから『URLの内容を取得』を選択します。

URLの取得から最後まで
Notionに入れていく。If文はなくても良いので今回は解説は無し

ここからの作業はこちらの記事で詳しく説明されています。

今回は、同じように入れれば大丈夫、というところを説明いたします。

まず、『URLの内容を取得』の変数を入れる部分に以下のURLを入力します。

https://api.notion.com/v1/pages
方法はPOSTを選択してください。

ヘッダを開いて3つ入れていきます。
ヘッダの数が足りない場合は下の「新規ヘッダを追加」をタップしてヘッダの入力欄を追加してください。

ヘッダ1
 キー:Authorization
 テキスト:Bearer 「Notionのシークレットキー」
ヘッダ2
 キー:Content-Type
 テキスト:application/json
ヘッダ3
 キー:Notion-Version
 テキスト:2022-06-28

ヘッダ1はBearerの後ろに半角の空白、自分のNotionAPIで作ったインテグレーションページに出ているトークンを入れてください。
「secret_」で始まります。

Notion-Versionは自分がNotionのページを更新した日ではなく、Notion自体のアップデートの日付になります。
現在の最新は「2022-06-28」です。

URLを取得の中身
本文は色々なものを入れられるが基本的に辞書、配列、テキストを使用する
本文を要求はJSONを選択してください。

本文を要求を書いていきます。

ここからは複雑ですので、ゆっくりやっていきましょう。

一番上にParentを登録します。データベースIDを入れる場所です。

"新規フィールドを追加"→"辞書"を追加
 キー:parent
 "項目"をタップ→"新規フィールドを追加"→"テキスト"
  キー:database_id
  テキスト:"使用するデータベースのデータベースID"

ここでデータベースIDが出てきます。

赤色の部分がデータベースのID

画面を本文の部分まで戻し、次にpropertiesを入れていきます。
ここにデータベースの表のタイトルやステータスなどのプロパティが入っていきます。

"新規フィールドを追加"→"辞書"を追加
 キー:properties

"項目"をタップし、中に入ります。
ここに4つのフィールドを追加します。これがNotionのプロパティ名と対応しています。

①名前(本のタイトル)
"新規フィールドを追加"→"辞書"
 キー:名前

②ステータス
"新規フィールドを追加"→"辞書"
 キー:ステータス

③著者名
"新規フィールドを追加"→"辞書"
 キー:著者名

④書影(表紙)
"新規フィールドを追加"→"辞書"
 キー:書影

各フィールドを入力していきます。
今回、ステータスは上記記事のセレクトではなく、ステータスというプロパティを使用しています。

① 名前(本のタイトル)
"項目"→"新規フィールドを追加"→"配列"
 キー:title
  "項目"→"新規フィールドを追加"→"辞書"
     (配列を選択した時はキーは入力しません)
    "項目"→"新規フィールドを追加"→"辞書"
      キー:text
        "項目"→"新規フィールドを追加"→"テキスト"
          キー:content
          テキスト:変数『タイトル』
② ステータス
"項目"→"新規フィールドを追加"→"辞書"
 キー:status
  "項目"→"新規フィールドを追加"→"テキスト"
    キー:name
    テキスト:積読
③ 著者名
"項目"→"新規フィールドを追加"→"配列"
 キー:rich_text
  "項目"→"新規フィールドを追加"→"辞書"
  (配列を選択した時はキーは入力しません)
   "項目"→
(同じ項目に2つの新規フィールドを作成します)
             "新規フィールドを追加"→"テキスト"
     キー:type
     テキスト:text
    "新規フィールドを追加"→"辞書"
     キー:text
      "項目"→"新規フィールドを追加"→"テキスト"
       キー:content
       テキスト:変数『著者名』
④ 書影
"項目"→"新規フィールドを追加"→"配列"
 キー:files
  "項目"→"新規フィールドを追加"→"辞書"
(配列を選択した時はキーは入力しません)
   →"項目"
(同じ項目に3つの新規フィールドを作成します)
    "新規フィールドを追加"→"テキスト"
     キー:type
     テキスト:external
    "新規フィールドを追加"→"テキスト"
     キー:name
     テキスト:"表紙"(自由OK)
    "新規フィールドを追加"→"辞書"
     キー:external
      "項目"→"新規フィールドを追加"→"テキスト"
        キー:url
        テキスト:変数名『書影』

これで完成です!

他にも内ページを入れたい時は一番上にある記事の通り、最後に記述していた本文に新しく「children」を作成して入れて行ったり、
プロパティで自分で選択するものを入れたり、
カスタマイズも自由にできます!


ここまで読んでくださり、ありがとうございます!

とてもぶっちゃけた話をしますと、iPhoneにはNotionとkindleを連携させるBOOK Notionという便利なアプリもあります。

しかし、アプリとして完成されていたため自分の使いたいようなカスタマイズが難しく、元々利用しているデータベースを活用したいという思いもあって今回の作成に踏み切りました。

これを作ろう!と思えたのも前述の記事を書いてくださったIzumidaさんのおかげです。

こちらで恐縮ですが感謝の言葉を述べさせていただきます。

何か困ったことやエラーが解決しないなどありましたらお気軽にコメント欄にお書きください。

私も始めたばかりの初心者ですが、一緒に考えて答えを探させていただきます!

ここまでよんでくださり、ありがとうございました!

もし、サポートしたいな、と思っていただけたら嬉しいです。 サポートいただいたお金はもっといい記事を書くために使用いたします。