見出し画像

NotionからKindleを呼び出してみた!

はじめに

Notionで読書管理をしている方は多いかと思います。本を一覧化して眺めたり、読書メモを見返したりする際、「書籍の中では具体的にどう書いてあったっけ」となることがあると思います。このときkindleを開いてその書籍を探して、、、とするのはちょっと手間です。
そこで、Notionから、Kindleの該当の本を呼び出す方法を紹介します。

完成イメージ

画像
その本をkindleで開くためのプロパティが追加される

プロパティに数式により作られたリンクが加えられ、これをクリックするとその本が開かれます。

概要

やり方は2通りあります。
一つは固定レイアウトの書籍のみ対応のやり方、もう一つは全書籍対応のやり方です。
固定レイアウトの書籍のみ対応のやり方は簡単ですぐ実装できます。全書籍対応のやり方は実装がちょっと複雑です。

準備

どちらのやり方をするにしても「ASIN」のプロパティを作成しておく必要があります。
ASINとは、Amazonの商品に割り当てられているIDです。商品ページなどから確認できます。

画像
商品ページ

Notionで「ASIN」という名前のテキストプロパティを作成します。そして、商品ページなどから各書籍のASINをコピーします。

画像
「ASIN」プロパティが追加された状態

固定レイアウト書籍のみ対応のやり方

固定レイアウトの書籍であれば、数式プロパティに以下の式を入れるだけで簡単にブラウザからその書籍を開くリンクを作成できます。

link("ブラウザで開く","https://read.amazon.co.jp/manga/"+prop("ASIN"))

URLにmangaと書いてありますが、漫画に限らず固定レイアウトの書籍であれば読むことができます。

画像
リンクをクリックするとブラウザからその書籍が読めます

全書籍対応のやり方

全書籍対応のやり方としては、ブラウザではなくkindleアプリから書籍を開くことになりますので、事前にkindleアプリをインストールしておきます。

なお、これから紹介するやり方に関して、私はWindowsのChromeで動作確認できましたが、残念ながらiOSでは正しく動作しないです。Mac, Androidに関しては動作未確認です。

流れとしては、以下の2ステップになります。

  1. GASでKindleアプリを開くためのサイトを作成する

  2. 作成したGASサイトへのリンクをNotionで作成する

GASでKindleを開くためのサイトを作成する

GAS(Google Apps Script)とは、自分でサイトや自動化の仕組みを作れるGoogleのサービスです。

まずはGASを新規作成します。

画像
「+新規」→「その他」→「Google Apps Script」
画像
「スクリプトを作成」をクリック

コードを書く画面が開かれるので、以下に記載したコードをコピペし、Ctrl+Sキーで保存します。

function doGet(e) {
    // リクエストからパラメータを取得
    var asin = e.parameter.asin;
    // カスタムURLスキームにこれらのパラメータを組み込む
    var customUrlScheme = 'kindle://book?action=open&asin='+encodeURIComponent(asin);

    // HTMLとJavaScriptを使用してリダイレクト
    var html = `
        <html>
        <head>
        </head>
        <body>
            <p>Redirecting...</p>
            <a id="url_link">自動的に遷移しない場合こちらをクリック</a>
            <script>
                document.getElementById("url_link").setAttribute("href","${customUrlScheme}")
                window.location.href = "${customUrlScheme}";
            </script>
        </body>
        </html>
    `;
    return HtmlService.createHtmlOutput(html);
}

コードについて少し説明します。URLスキームという技術を使って、kindleアプリを開いています。URLスキーム=アプリを起動するためのURLと考えておけばよいです。このサイトに訪れたら、自動的にkindleアプリを開かせるようにしています。

画像
コードを貼り付けて、「デプロイ」→「新しいデプロイ」

次に「デプロイ」→「新しいデプロイ」をクリックします。

画像
「ウェブアプリ」を選択

「ウェブアプリ」を選択します

画像
「新しい説明文」を入力して、「デプロイ」

「新しい説明文」に何かしら入力して、「デプロイ」をクリックします。

画像
ウェブアプリのURLを「コピー」します

サイトのURLが表示されます。このURLを使用するのでコピーしてどこかに保存しておいてください。

作成したGASサイトへのリンクをNotionで作成する

NotionでKindleを開くためのプロパティを作成します。
数式プロパティを作成してください。

画像
数式プロパティの作成

数式は以下のようにしてください。

link("kindleで開く","https://script.google.com/macros/s/xxxx/exec?asin="+prop("ASIN"))

https://script.google.com/macros/s/xxxx/execまでが先ほどコピーしたGASのサイトのURLです。それに「?asin="+prop("ASIN")」という文字列を追加します。

リンクをクリック

これにより出来上がったプロパティをクリックすると、

画像
「kindleで開く」をクリック

作成したGASサイトに飛び、そこからkindleが開かれます

画像
「Kindleを開く」

おわりに

最近読書メモをとるようになったので、読書メモを見返してるとき、その本をぱっと開けるようにしたいなと思い実装しました。

URLスキームでkindleを開けることはわかっていたのですが、NotionはURLスキームをリンクとして認識してくれないので、どうしたものかと考えていたのですが下記の参考サイトで、GASを介せば実装できると思いつきました。
GASのことはあまり知らなかったのですが、このほかにもいろいろ使いようがあって面白そうです。

参考サイト


この記事が気に入ったらサポートをしてみませんか?

ピックアップされています

Notion活用

  • 4本

コメント

りょーん
勉強になりました。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。
データ分析の仕事をしています。 主にPythonでのデータ分析に便利な知識や、趣味で解析した身近なデータについて書いていきます。 趣味興味関心:Python、カメラ、マンガ、Kindle、Notion
NotionからKindleを呼び出してみた!|あべい|Pythonでデータ分析
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1