ひとりまとめ

もろもろのメモ

CakePHP3で、ユーザー管理はCakeDC/Usersを使って楽したい!

CakePHPで何か作りたいのだけど、ユーザー管理を自分で全部作るのは面倒くさい・・・。そういう僕のような僕のためのプラグインがあったので使ってみました。あくまでも導入部分のみですが、やり方忘れそうなので備忘録。

参考ページ:

CakeDC | CakeDC Users Plugin for CakePHP 3 | The minds behind CakePHP

 

環境

CakePHP 3.4.9

CakeDC/users 5.0.3( GitHub - CakeDC/users: Users Plugin for CakePHP )

 

プラグインで用意されている画面

入れるだけで、後ろ側の処理と画面を作ってくれます。

 

ログイン前

ログイン /login

f:id:g2_girichan:20170705183418p:plain

新規登録 /users/users/register

f:id:g2_girichan:20170705183533p:plain

パスワードリセット /users/users/request-reset-password

f:id:g2_girichan:20170705183630p:plain

 

管理者用

ユーザー一覧 /users/users

f:id:g2_girichan:20170705185556p:plain

ユーザー追加 /users/users/add

f:id:g2_girichan:20170705185720p:plain

 ユーザー情報 /users/users/view/{ ユーザーのID }

f:id:g2_girichan:20170705190237p:plain

ユーザー情報編集 /users/users/edit/{ ユーザーのID }

f:id:g2_girichan:20170705195134p:plain

ユーザーパスワード変更 /users/users/change-password/{ ユーザーのID }

f:id:g2_girichan:20170705195502p:plain

 

ユーザー用

プロフィール /profile

f:id:g2_girichan:20170705200643p:plain

パスワード変更 /users/users/change-password

f:id:g2_girichan:20170705195502p:plain

 

準備

1:インストー

composerを使う。ソーシャルログインが必要かどうかで、入れるものが違うみたい。通常のみならこんな感じ。(srcなどがある、いわゆるアプリケーションディレクトリ?で実行)

composer require cakedc/users

 

2:必要なテーブルを用意

bin/cake migrations migrate -p CakeDC/Users

これで次の3つのテーブルが作られます。

cake_d_c_users_phinxlog
social_accounts
users

 

3:Superuserを用意

この状態では誰もユーザーがいないので、全てにアクセスできるSuperuserを作ります。

bin/cake users addSuperuser

この直後にUsernameとPasswordが表示されるので、控えておくのを忘れずに!

 

4:bootstrapでプラグインを読み込む

config/bootstrap.phpに以下を追加します。

Plugin::load('CakeDC/Users', ['routes' => true, 'bootstrap' => true]);

 

使い方

コントローラーで読み込む

src/Controller/AppController.phpに記述すると、全てのコントローラーで読み込みます。ログインしなくても観られるページを作るなら、AppControllerを継承したコントローラーを作って、そこのinitialize()に記述するのが良いんじゃないかなと。

どのコントローラーに書くとしても、書き方はこんな感じでinitialize( )に書くみたい。

public function initialize()
{
    parent::initialize();
    $this->loadComponent('CakeDC/Users.UsersAuth');
}

 

ユーザーロールごとに制限をかける

このままの状態だと、どんなにユーザーを追加してもSuperuser以外はログインしても閲覧できるページがない。そこで、ユーザーロールごとにどのコントローラーのどのアクションにアクセスできるかを設定する必要があります。

config/permissions.php (ファイルがない場合は新規作成しちゃう)

書き方はこんな感じ。

<?php
return [
    'Users.SimpleRbac.permissions' => [
        [
            'role' => 'user',
            'controller' => 'Foo',
            'action' => 'edit',
        ],
        [
            'role' => 'user',
            'plugin' => 'CakeDC/Users',
            'controller' => 'Users',
            'action' => 'logout',
        ],
    ]
];

ここで個人的に要注意なのは、logoutを書いておかないとログインしたが最後出られないサイトになってしまうこと。最初は気がつかず/logoutにアクセスしてリダイレクトされまくりました。

 

設定を変更する

「ユーザー自身が新規登録する機能は閉じたいなー」など、プラグインの設定をすることができます。

設定を記述するファイルはプラグインのロードと同じconfig/bootstrap.php

ここにこんな感じで記述。

Configure::write('Users.Registration.active', false);

設定できる内容はvendor/cakedc/users/config/users.phpに書かれたもの。指定方法は、ドットで繋いで目的の値を指定。

詳しくは公式で。

users/Configuration.md at master · CakeDC/users · GitHub

 

日本語化する

5.0.3の時点では、日本語の翻訳ファイルは含まれていません。そのため日本語化するには自分でファイルを用意する必要があります。

vendor/cakedc/users/src/Locale/Users.potをsrc/Locale/jp_JP/Users.poにコピーします。拡張子を変更するのを忘れずに。

中身を見て「msgstr」の後ろに日本語を書けばいいのですが、いかんせん量が多くて埋めないとその文字が空のまま出てしまうようなので、取り急ぎは英語をコピペで入れて必要なものだけ日本語にするのがいいのではないかと。

なお、このファイルを置いただけじゃなく、config/bootstrap.php

ini_set('intl.default_locale', 'ja_JP');

を追加するのを忘れずに。また、キャッシュがきついので、ファイルを変更したらtmp/cache/persistent以下のファイルを消したほうがいいです。

 

メールの送信元(from)を変更

この設定は、CakePHP自体のものを参照してるようなので、そっちを変更します。

config/app.phpの中にある「Email」「EmailTransport」を、送りたいメアドのもので登録します。

 

まずはこんな感じで。

PHPフレームワーク CakePHP 3入門

PHPフレームワーク CakePHP 3入門

 

 

Nintendo Switch用のmicroSDを探してみた

Nitendo Switchで使えるmicroSDを買おうと思って調べてみました。できれば安くて速くて大きい物を買いたい!!例によってmicroSDは規格やら速度やら、チェックすべきところが多い印象なので、その辺を整理しつつメモ。

価格や性能は時期によって異なる製品が出てると思いますが、これは2017/4/26時点のものです。その点は参考までに。

 

Nitendo Switchで使えるmicroSDは?

公式ページに記述がありました。これを参考にします。

microSDカードについて|Nintendo Switch サポート情報|Nintendo

 

容量

この記事によると以下の3種類。

microSDメモリーカード
・microSDHCメモリーカード
・microSDXCメモリーカード

この違いは容量らしい。Switch本体が32GBらしいく、それ以上のサイズが欲しいため、必然的に選ぶのは64GB〜である「microSDXC」ということになります。

 

スピード

規格自体にはUHS-I と UHS-II の2種類あるようですが、Switchで対応しているのは「UHS-I規格およびUHSスピードクラス1」とのこと。任天堂の推奨では

読み込み速度 60~95MB/秒(読み込み速度が速いほど、Nintendo Switchをより快適に遊んでいただけます)

とのことなので、この条件に合うもので、読み込み&書き込み速度が早いものを探してみます。

 

調査

より安い製品もAmazonには出てるのですが、あまりにも安く出品者も個人ぽいのでスルー。調査時点でAmazonから販売されてるものだけをピックアップしました。

大体の値段感は、こんな感じっぽいです。

 

メーカー 型番 容量 読出 書込 価格
Samsung MB-MC256DA/FFP 256GB 95MB/s 90MB/s 19,980
Samsung MB-MC128GA/ECO 128GB 100MB/s 90MB/s 7,980
シリコンパワー SP128GBSTXBU1V20BS 128GB 75MB/s 15MB/s 6,280
Samsung MB-MC64GA/ECO 64GB 100MB/s 60MB/s 3,980

 

値段を抑えつつ容量もということならシリコンパワーですが、現時点の最高性能っぽいのだとSamsungか。なおここでピックアップしたSamsungの3製品は、どれもNitendoSwitch動作確認済みとのこと。

 

Switchの場合、普段のセーブは本体に書き込むようなので、書き込み速度は主にゲームのダウンロード時に影響しそうです。 それをどの程度考慮するか?で、どれを選ぶかを決めることになりそうです。

 

 

 

 

Vue.componentを初めて使ってちょっとハマった

日本語のドキュメントも充実しているVue.js。

それを頼りにちまちまとコンポーネントを試してました。

jp.vuejs.org

コンポーネントの登録はこうするらしい。

// todo-item と呼ばれる新しいコンポーネントを定義 Vue.component('todo-item', {
    template: '<li>This is a todo</li>'
})

ほうほう。そしてこう書けば置き換わるらしい。

<ol>
    <!-- todos 配列にある各 todo に対して todo-item コンポーネントインスタンスを作成する -->
    <todo-item></todo-item>
</ol>

あれ。何も表示されない・・・。ただこれだけなのになぜ・・・。

 

と思ったら、HTMLの部分にこれを書いただけだとどこにVueのを適用するのかわからないのでした!どこに適用して欲しいのかを知らせる必要があると。

 

ということで、まずvueのオブジェクトを作っておく。

new Vue({
    el: "#todo-list",
});

そして、HTMLの方でもelに対応するidをしてしておく。

<div id="todo-list">
    <ol>
        <!-- todos 配列にある各 todo に対して todo-item コンポーネントインスタンスを作成する -->
        <todo-item></todo-item>
    </ol>
</div>

こうすると、todo-itemのところが置き換わって出力されました。

 

そっか。そりゃそうだな。

RaspberryPiでFuelPHPを動かしたい!

前回Apache2を動かしたので、ついでにFuelPHPも入れてみようと試してみました。phpはすでに入っている状態を想定。

使ったバージョン Raspbian GNU/Linux 8 Apache/2.4.10 (Raspbian)

 

手順

1. FuelPHPをインストール

2. Apacheの設定を変更

 

1. FuelPHPをインストール

oilを使えるようにする

まずはoilが使えるようにします。公式サイトを参考にやってみました。

インストール方法 - インストール - FuelPHP ドキュメント

コマンドラインから、次のようにしろとのこと。

$ curl get.fuelphp.com/oil | sh

ところが、これを実行してみると次のようなメッセージが出ました。

sh: 2: Syntax error: newline unexpected

curl get.fuelphp.com/oil」だけを実行して落ちてきたソースを見てみると、このようになっていました。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://get.fuelphp.com:443/oil">here</a>.</p>
</body></html>

https://get.fuelphp.com:443/oil」へのリンクが貼られていルノで、curlを使ってこのURLから落とすことにしました。

curl https://get.fuelphp.com:443/oil | sh

これで無事oilが使えるようになりました。

 

FuelPHPを入れる

続いてoilを使ってプロジェクトのディレクトリにFuelPHPを入れます。

これは公式サイトそのままに。

oil create { プロジェクトのディレクトリ名 } 

 

2. Apacheの設定を変更

FuelPHPmod_rewriteを使ってURLを何やかんやできる必要があるので、その許可を行います。さらに、今回はFuelPHPの/{ プロジェクトのディレクトリ名 }/publicをDocumentRootに設定することにします。

 

mod_rewriteを使えるようにする

これはコマンド1発!

sudo a2enmod rewrite

 

DocumentRootに設定する

これは先日まとめたここの記事のようにするのですが、1箇所注意点があります。

Apache2のDocumentRootを変更したい!RaspberryPiで。 - ひとりまとめ

「設定ファイルの変更」の項で記載したDirectoryディレクティブの中身を次のようにします。「AllowOverride All」にしとくのがポイント。

DocumentRoot /var/www/html

<Directory /home/pi/radiko/public/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

 

 

以上でFuelPHPが使えるようになる はず!

 

 

はじめてのフレームワークとしてのFuelPHP 改訂版

はじめてのフレームワークとしてのFuelPHP 改訂版

 

 

ラズパイマガジン 2017年4月号 (日経BPパソコンベストムック)
 

 

Apache2のDocumentRootを変更したい!RaspberryPiで。

ときたまいじる程度のApache設定。そのため毎回なにがなんだかわからなくなってしまいます。今度こそ覚えておくために、やったこと備忘録。

 

使ったバージョン

Raspbian GNU/Linux 8

Apache/2.4.10 (Raspbian)

 

手順

1. Apacheのインストール

2. DocumentRoot用のディレクトリ作成

3. Apacheの設定変更

4. Apacheの再起動

 

1. Apacheのインストール

apt-getを使ってインストールしました。

apt-getを使う前に、パッケージのリストをサーバーから入手し、その上で目的のものをインストールします。

sudo apt-get update

sudo apt-get install apache2

 

Apacheの起動はこうします。

sudo /etc/init.d/apache2 start

この状態で、http://192.168.XXX.XXX (このラズパイのIPアドレス)にブラウザでアクセスすると、Apacheの画面が表示されていることが確認できます。

 

なお、デフォルトでラズパイ起動時にApacheも起動するように設定されているようで、

/etc/rc2.d/以下にS02apache2というのが入っているのが確認できます。

 

 

2. DocumentRoot用のディレクトリ作成

今回はpiのホームディレクトリ以下の/home/pi/wwwをDocumentRootを設定してみることにします。

httpdを動かすユーザーが、このディレクトリに触れる必要があります。ということで、httpdを動かしているユーザーが誰なのか、次にようにして確認してみます。

ps auxw | grep httpd

するとpiというのが出ますので、ラズパイの場合はpiユーザーが動かしていることがわかります。ということで、デフォルトのpiでそのままディレクトリを作ることにします。

mkdir /home/pi/www

この後設定できていることが確認できるように、適当にindex.htmlというファイルを作って入れておくことにします。

 

3. Apache2の設定

変更する設定ファイル

Apache2にはいくつもの設定ファイルがあります。

Debian Apache2の設定(1)

今回はDocumentRootの場所を変更するだけなので、/etc/apache2/sites-available以下の「〜.conf」という拡張子のファイルをいじります。

デフォルトでは「000-default.conf」と「default-ssl.conf」という2つファイルが置かれていますが、「000-default.conf」をコピーして「default.config」というのを作って、そっちを変更してみることにします。

 

ちなみにこの「〜.conf」というファイルですが、新たに追加したりする場合は設置しただけではダメで、明示的に読み込ませるようにしないといけないので注意。

というのも、RaspbianのようなDebian系のApache2では、/etc/apache2/sites-enabled/に入れた設定が有効で、/etc/apache2/sites-available/には利用可能な設定を入れておく場所というルールがあるっぽい。

で、どれを有効にしてどれを無効にするのかは、次のコマンドを使います。

登録 sudo a2ensite

解除 sudo a2dissite

実はこれは、sites-enabledへのシンボリックリンクを作ったり消したりするコマンドなのでした。

sudo a2dissite

と打ってみると、次のようなメッセージが出ます。

Your choices are: 000-default

Which site(s) do you want to disable (wildcards ok)?

 

これは、現在000-defaultが設定されていることを示しています。これを解除するには、このメッセージに続けて「000-default」と入力します。

 

設定ファイルの変更

コピーして作ったdefault.configをviなどで開くと、

DocumentRoot /var/www/html

 

と書かれているのがわかります。ここでパスを指定していました。このディレクトリ以下の権限を示すDirectoryディレクティブは、/etc/apache2/apache2.confの中に記述されています。そのため、/var/www/htmlを/home/pi/wwwに変更しただけでは403エラーが発生してページが表示されません。

なので、DocumentRootの場所とDirectoryディレクティブを、default.configの中に記述します。

DocumentRoot /home/pi/www  ←これは変更

↓これは追加

<Directory /home/pi/www/>

    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

 

 

設定ファイルの登録

今更新したdefault.configを登録します。

sudo a2ensite

これを打つと、次のようなメッセージが出ます。

Your choices are: 000-default default-ssl default
Which site(s) do you want to enable (wildcards ok)?

/etc/apache2/sites-available以下に3つのファイルがあり、どれにするかを聞かれているので、defaultと入力して登録します。

 

4.Apacheの再起動

再起動はこれ。

sudo /etc/init.d/apache2 restart

 

 

これで新しいDocumentRoot以下のファイルが見えるようになるかと思います。

 

 

最初、Directoryディレクティブのことを忘れてて、DocumentRootだけを変更して「なんで403になるんだー」などと思ってました。「Apache2では/etc/apache2/sites-availableに設定を書くんだ!」とだけ書かれた記事を見つけて自分がハマったので、備忘録。

 

 

 

Raspberry PiにSSHで公開鍵認証を使いたい!

RaspberryPi(通称ラズパイ)を家の中で常時起動して色々遊んでたのですが、遊びついでに今まで自分で設定したことがない「公開鍵認証」なるものを試してみようと思い、その備忘録。

 

最終的に実現すること

公開鍵認証を使って、MacからラズパイにSSHでログインする。

 

前知識

SSHプロトコル

SSHにはプロトコルの違いにより、バージョン1とバージョン2の2種類あるようです。現在はバージョン2が推奨されているようです。これは、このあと設定ファイルの記述で関係してきます。

 

鍵認証

秘密鍵」と「公開鍵」の2つが1セットになってます。秘密鍵はクライアント側に、公開鍵は接続するサーバー側に保存しておくようです。クライアント、サーバー側ともに複数の鍵を使い分ける事もできるようです。

 

暗号方式

鍵を暗号化するときの方式には、「RSA」「DSA」「ECDSA」などがあるようです。「RSA」というのがよく使われてるようで、「DSA」はやや古め。「ECDSA」はOpenSSHの5.7以降から利用可能とのこと。新しい方がより強固ってことみたい。

ssh -V

で、ラズパイのOpenSSHのバージョンが確認できます。

 

パスフレーズ

秘密鍵」を開くための文字列のこと。サーバーへアクセスするときにパスワードの代わりに使用します。ナシでもOKではあります。

 

手順

1:公開鍵と秘密鍵のセットを作る

2:公開鍵をラズパイへ転送

3:公開鍵を書き換え

4:ラズパイの設定を変更

5:接続!

 

方法

使っているのがMacなので、Macでの具体的な方法を。

どこで作業するかによってパスが違ってきますが、/Users/{ユーザー名}/でやることにします。

 

1:公開鍵と秘密鍵のセットを作る

ターミナルで、次のように入力。RSAならこんな感じ。

ssh-keygen -t rsa

ECDSAならこんな感じ。(256の部分は鍵長で、256,384,521bitから選べます。512じゃなく521ので注意。)

ssh-keygen -t ecdsa -b 256

これを入力すると、続けて3つ入力待ちがきます。

・どこに保存するか デフォルトは/Users/{ユーザー名}/.ssh/id_{暗号方式}。

パスフレーズ

パスフレーズの確認

保存先は特に変更する必要がなければそのままEnter。パスフレーズは任意の文字列を入力します。

これにより、.ssh以下にid_rsaとid_rsa.pub(id_ecdsaとid_ecdsa.pub)という2つのファイルが作られます。このうちの.pubの方が公開鍵です。

.sshというフォルダの下に作られるのでそのままではFinderで表示されませんが、Sierraでは「shift + command + .」で「.」付きの隠しファイルやフォルダが表示されます。

 

2:公開鍵をラズパイへ転送

ラズパイのユーザーは、初期状態でpi。パスワードはraspberryになってます。SSHも初期状態でこれで繋ぐことができるので、ひとまずこのユーザー情報を使ってラズパイに公開鍵を転送します。

転送にはscpというのを使います。これはsshを使ってファイルをおくるというコマンド。先ほど作った.ssh以下の公開鍵を、ラズパイの/home/pi/直下にとりあえず送ることにします。

scp -P 22 .ssh/id_rsa.pub pi@192.168.XXX.XXX:

 

3:公開鍵を書き換え

今転送した公開鍵id_rsa.pubをいじります。ここからはSSHでログインして作業するか、直接ラズパイにキーボードをつないで作業します。

ラズパイ側では、SSHで接続された際にそれに対応する公開鍵をauthorized_keysというファイルの中から探します。authorized_keysの中身は、公開鍵の中身がそのまま書かれています。そのため、authorized_keysというファイルがすでにあるかどうかによって作業内容がちょっと変わります。

 

初めて公開鍵を設置する場合

.sshというディレクトリを作り、公開鍵を移動してリネーム。ファイルの権限を変更します。

mkdir .ssh

mv ~/id_rsa.pub ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

 

 

追記の場合

既存のauthorized_keysに今回の公開鍵の中身を書き足します。

cat ~/id_rsa.pub >> .ssh/authorized_keys

 

 

 

4:ラズパイの設定を変更

sshに関する設定は、ラズパイの/etc/ssh/sshd_configというファイルに記述します。同じ場所にssh_configというファイルがありますが、これはラズパイのsshクライアントとしての設定ファイルです。

今回は、次のような設定にしてみます。

パスワードによる認証は拒否

 PasswordAuthentication

  yes → no

 

公開鍵認証を許可

 PubkeyAuthentication

  yes (初期値もyesだと思うので、そのままでOK)

 

どちらもyesにした場合、鍵を持ってなければ自動的にパスワードを聞いてきます。鍵必須にする場合は、PasswordAuthenticationをnoにするのを忘れずに。

 

設定が終わったら、sshのデーモンを再起動します。

sudo /etc/init.d/ssh restart

 

関連項目

特に変更する必要はないのですが、関係する項目として次のようなものがあります。

SSHプロトコルのバージョン / Protocol

初期値は2になっています。

 

公開鍵の配置場所と名前 / AuthorizedKeysFile

初期値は%h/.ssh/authorized_keysとなってて、各ユーザーのホームディレクトリ以下の.sshディレクトリに作るauthorized_keysというファイルを指しています。

先ほど公開鍵の操作をしましたが、それはここで決められたファイルなのでした。

 

5:接続!

ターミナルで接続します。繋ぐところはパスワードでやるときと同様です。

ssh pi@192.168.XXX.XXX

このあと、次のようなメッセージが出て、パスフレーズの入力を促されます。

Enter passphrase for key '/Users/{ユーザー名}/.ssh/id_rsa':

設定したパスフレーズを入力すると、接続完了!

 

 ユーザー名やパスワードを保存してすぐ繋げられて楽なツールもありました。

vSSH Lite

vSSH Lite

  • Velestar Private Enterprise
  • 開発ツール
  • 無料

 

紙の本も電子書籍もPDFも、全部まとめて一括で管理したい!

場所もとらず持ち運びも便利な電子書籍。しかもしょっちゅうセールをやっていたりするために、つい色々買ってしまいます。

 この電子書籍というのが便利な反面、厄介なところがあります。それは「姿がみえない」こと。机の上にも本棚にも並ばないので、買った直後に読まないとすぐ積んでしまっていました。

しかも、Amazonを始め、BookLive!やReader、さらにはPDFなど、いろんな電子書籍のお店があり、ついセールにつられてあちこちで購入。ますます何がどこにあるのやら・・・という状態が続いていました。

 

 

さて、蔵書管理をするツールに「Delicious Library」というのがあります。僕もこれを使って、紙の本をせっせと登録しています。

 

ふと思いました。これに電子書籍をまとめて登録してここから読めるようにできないものだろうか と・・・。

 

ということで、できました!!

紙も電子もまとめて一括管理の方法です。(Macでの方法ですが、Windowsでも手法的にはできるんじゃないかなと)

 

1)Delicious Libraryについて

そもそもは、Amazonから情報を取得して紙の本を管理しちゃおうというものです。カメラに向かってバーコードを見せるだけで、本の表紙画像はもとより、著者や出版社、サイズといった諸々の情報を簡単に登録できます。

f:id:g2_girichan:20151211223318p:plain

ちなみにAmazonから情報を取得するので、本だけでなくゲームや日用品などAmazonで扱ってるものならなんでも管理できてしまいます。

 

2)本の登録の方法

紙の本ならバーコードをカメラにかざして登録なのですが、今回は電子書籍なので自分で登録です。ISBNなどから検索してもいいのですが、書籍名で探す方が楽かも。

f:id:g2_girichan:20151211223727p:plain

 

3)ビューワーへのリンクを設定

このDelicious Libraryですが、書籍情報だけでなくURLを貼り付けることもできます。

f:id:g2_girichan:20151211224009p:plain

ここに、持っている電子書籍へのリンクを入れてあげれば、その本が開くという寸法です。

■ブラウザのビューワーで読むタイプ

ブラウザでビューワーがあるもの「BookLive!」「Reader」などは、該当の本をブラウザのビューワーで開いて、URLをコピペで終了です。

 

■PDFで読むタイプ

オライリーAppleの開発関連のものなどはPDFで手元にあります。それらは、URLの欄をクリックした状態でPDFファイル自身をドラッグ&ドロップすることで登録完了です。

 

Kindle

Amazonに関してはブラウザ版もありますが、どうせならMac版のKindleで開きたい・・・。ということで、アプリへのリンクを書いてみます。具体的にはこう。

kindle://book?action=open&asin=<ASINの数字>

これを毎回自分で打ち込むのも面倒臭いので、コピペの便利ツール「ClipMenu」のアクションを作ってみました。Amazonで該当の本のページを開いて、ASINのクリップボードに入れておき、それを文字列の後ろにひっつけるようにしてみました。

return 'kindle://book?action=open&asin='+clipText;

これを適当な名前.jsというファイル名で/Users/<ユーザー名>/Library/Application Support/ClipMenu/script/action以下に保存して、ClipMenuの「環境設定」>「アクション」>「User's」の中から選んで追加します。出て来ない時は、ClipMenuを再起動したら出てくると思います。

 

4)ビューワーを開く

登録している本の上で右クリックをして、「Booksの内容を開く」を選びます。

f:id:g2_girichan:20151211225631p:plain

こうすることで、さっき設定したビューワーで電子書籍を開くことができます。

 

 

これまでどんどんとっちらかってしまっていた電子書籍を、ぜーんぶまとめて本棚に並べることができるようになりました!!

本当は、本を買ったら自動的にDelicious Libraryに登録されたりすると嬉しいんですけどねー。

 

Delicious Library 3

Delicious Library 3

  • Delicious Monster Software, LLC
  • 辞書/辞典/その他
  • ¥3,000