![見出し画像](https://assets.st-note.com/production/uploads/images/127486260/rectangle_large_type_2_c8df13a7d7b406659a76e8d0e220f17c.png?width=1200)
NotionからKindleを呼び出してみた!
はじめに
Notionで読書管理をしている方は多いかと思います。本を一覧化して眺めたり、読書メモを見返したりする際、「書籍の中では具体的にどう書いてあったっけ」となることがあると思います。このときkindleを開いてその書籍を探して、、、とするのはちょっと手間です。
そこで、Notionから、Kindleの該当の本を呼び出す方法を紹介します。
完成イメージ
![](https://assets.st-note.com/img/1704710095616-dCU2FFkP6c.png?width=1200)
プロパティに数式により作られたリンクが加えられ、これをクリックするとその本が開かれます。
概要
やり方は2通りあります。
一つは固定レイアウトの書籍のみ対応のやり方、もう一つは全書籍対応のやり方です。
固定レイアウトの書籍のみ対応のやり方は簡単ですぐ実装できます。全書籍対応のやり方は実装がちょっと複雑です。
準備
どちらのやり方をするにしても「ASIN」のプロパティを作成しておく必要があります。
ASINとは、Amazonの商品に割り当てられているIDです。商品ページなどから確認できます。
![](https://assets.st-note.com/img/1704986447118-w09UNXqezy.png)
Notionで「ASIN」という名前のテキストプロパティを作成します。そして、商品ページなどから各書籍のASINをコピーします。
![](https://assets.st-note.com/img/1704986447106-OSSv9YORJM.png?width=1200)
固定レイアウト書籍のみ対応のやり方
固定レイアウトの書籍であれば、数式プロパティに以下の式を入れるだけで簡単にブラウザからその書籍を開くリンクを作成できます。
link("ブラウザで開く","https://read.amazon.co.jp/manga/"+prop("ASIN"))
URLにmangaと書いてありますが、漫画に限らず固定レイアウトの書籍であれば読むことができます。
![](https://assets.st-note.com/img/1705325140804-yTzJ7PifSj.png)
全書籍対応のやり方
全書籍対応のやり方としては、ブラウザではなくkindleアプリから書籍を開くことになりますので、事前にkindleアプリをインストールしておきます。
なお、これから紹介するやり方に関して、私はWindowsのChromeで動作確認できましたが、残念ながらiOSでは正しく動作しないです。Mac, Androidに関しては動作未確認です。
流れとしては、以下の2ステップになります。
GASでKindleアプリを開くためのサイトを作成する
作成したGASサイトへのリンクをNotionで作成する
GASでKindleを開くためのサイトを作成する
GAS(Google Apps Script)とは、自分でサイトや自動化の仕組みを作れるGoogleのサービスです。
まずはGASを新規作成します。
![](https://assets.st-note.com/img/1704709011183-CUHX3FIpdN.png?width=1200)
![](https://assets.st-note.com/img/1704709053709-jdPJylaLpn.png?width=1200)
コードを書く画面が開かれるので、以下に記載したコードをコピペし、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アプリを開かせるようにしています。
![](https://assets.st-note.com/img/1704709205042-N89VBJoAL0.png?width=1200)
次に「デプロイ」→「新しいデプロイ」をクリックします。
![](https://assets.st-note.com/img/1704709277982-WOUeUzNFZU.png?width=1200)
「ウェブアプリ」を選択します
![](https://assets.st-note.com/img/1704797015974-DVUJcBulZE.png?width=1200)
「新しい説明文」に何かしら入力して、「デプロイ」をクリックします。
![](https://assets.st-note.com/img/1704709535725-okO7JK2cXv.png?width=1200)
サイトのURLが表示されます。このURLを使用するのでコピーしてどこかに保存しておいてください。
作成したGASサイトへのリンクをNotionで作成する
NotionでKindleを開くためのプロパティを作成します。
数式プロパティを作成してください。
![](https://assets.st-note.com/img/1704709882939-hybZ4oTk8h.png)
数式は以下のようにしてください。
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")」という文字列を追加します。
リンクをクリック
これにより出来上がったプロパティをクリックすると、
![](https://assets.st-note.com/img/1704710095616-dCU2FFkP6c.png?width=1200)
作成したGASサイトに飛び、そこからkindleが開かれます
![](https://assets.st-note.com/img/1704710266870-VSz1bmfTIM.png?width=1200)
おわりに
最近読書メモをとるようになったので、読書メモを見返してるとき、その本をぱっと開けるようにしたいなと思い実装しました。
URLスキームでkindleを開けることはわかっていたのですが、NotionはURLスキームをリンクとして認識してくれないので、どうしたものかと考えていたのですが下記の参考サイトで、GASを介せば実装できると思いつきました。
GASのことはあまり知らなかったのですが、このほかにもいろいろ使いようがあって面白そうです。