OSとGoogleドライブの連携PCメモPC関係のメモ、気付いたこと。OSをいじって遊んでいます。OSのカスタムビルドを配布しています。ないブログに表示されています。新しい記事を書く事で広告が消えます。一部古い記述を修正しました。OSのビルド方法を書きましたが、この方法だとFilesアプリを起動したときにローカルのダウンロードフォルダは見えるのにGoogleドライブのほうは開いてみても中身が全然見えない、という問題がありました。これはFilesアプリがGoogleドライブにアクセスする際にGoogleのAPIを使用しており、APIにアクセスするための認証キーが存在しないためにアクセス権エラーになっているのが原因でした。エラーの内容は、Chromiumブラウザを起動してchrome://drive-internalsにアクセスするとみることができます。赤字でHTTP_FORBIDDENというエラーがたくさん出ています。これが認証キーがないために起きるエラーです。Keyに関する情報の詳細は以下の公式サイトのページに書いてあります。(http://www.chromium.org/developers/how-tos/api-keys)これによると直し方は2つあって、ビルド時にAPIキーを埋め込んでしまう方法とインストール後にAPIキーをファイルに書き込む方法があります。今回は後者の方法を使って対策します。あと、対策するのはFilesアプリのGoogleドライブ連携だけです。ほかはまた問題が見えたら対策しようと思います。GroupのChromium-devに参加しないと使えないAPIがある、という記述があります。Googleドライブと連携するためのAPIはChromium-devに参加しなくても使えますので、面倒ならここは飛ばしても構わないと思います。今回は上の記事に従ってChromium-devに参加してみます。https://groups.google.com/a/chromium.org/forum/?fromgroups#!forum/chromium-devにアクセスします。以下のように表示されるので「投稿するには~」の青いボタンをクリックします。「Chromium-dev」グループに参加という画面が出るので「このグループに参加」をクリックします。メールを受け取るのが嫌なら真ん中の「新しいメッセージごとに~」のコンボボックスを「更新情報をメールで受け取らない」に変更しておきます。これでChromium-devへ参加できました。続けてAPIの有効化を行います。Consoleというページにアクセスして、使いたいAPIを有効化し、かつAPIにアクセスするための認証キーを発行してもらう必要があります。今回作業する範囲ならGoogleアカウントさえあれば、費用は掛かりません。https://cloud.google.com/consoleにアクセスします。PROJECT」ボタンをクリックします。※IE9ではうまくアクセスできませんでした。FirefoxやChromeを使うのがお勧めです。Createをクリックします。authをクリックします。API」を探して右側の「OFF」ボタンをクリックして「ON」に変えます。Keysのページには、有効にしておくといいAPIとして以下のものがあげられています。APIのことは書いてありません。API赤字で示したものはChromium-devグループに参加していないと使えないAPIです。必要に応じて有効にしておくといいと思います。OS上でリモートデスクトップは使用できました。このAPIがどこで役立ってくるのかはよくわかっていません。Keyを入手しておく必要があります。Console上で続けて行います。Keyと一口に言っても、実際には以下の3つがあります。Keyこの3つをすべて入手する必要があります。IDをクリックします。IDという青いボタンをクリックします。applicationという枠が表示されます。secret(赤丸で囲んだもの)をあとで使います。Keyという赤いボタン(青丸で囲んだもの)をクリックします。keyボタンをクリックします。referersという画面が出るのでそのままCreateという青いボタンをクリックします。applicationsという枠が新たに表示されます。Keyをあとで使います。Keyの設定を行います。KEYを環境変数に設定するようにと書いてありますが、実際の設定場所が書いていません。chronosユーザの~/.bashrcに書いてもうまくいきません。設定先は/etc/chrome_dev.confというChromiumブラウザの設定ファイルに行います。OSを起動してCtrl+Alt+F2を押してターミナルを開き、ユーザchronosでログインします。OSのビルド時に設定した値ですのでまちまちです。ArnoldThaBat版を使っているなら"password"です。/etc/chrome_dev.confはルートパーティションにあります。OSはルートパーティションをリードオンリーでマウントしますので、リードライトでマウントしなおします。Keyを書き込みます。key)(略)とりあえずこれで作業は終わりです。この後リブートするのですが、GUI側でログインしている場合はCtrl+Alt+F1を押してGUIに戻ってGUIセッションからログアウトしてください。ログアウトせずに再起動すると再起動後にエラーが出ることがあります。OSを再起動すればGoogleドライブの内容にアクセスできるはずです。Googleドライブの内容が見えるようになりました。最初に見たchrome://drive-internalsを見てみても赤字のエラーは消えています。Keyを有効にする必要があるようです。ちなみにHexxeh版はこの作業を行わなくてもGoogleドライブにアクセスできます。users.とあるんですよね。OKなAPIキーをどこかで入手したんでしょうか。それともChromium-devに参加しなくても使えるAPIなら公開してもいいのかな?このあたりはまだよくわかっていません。追記:同じような質問がこちらにありました。keys,だそうです。Keyそのものを公開しなければ、Keyを組み込んだバイナリを配っても別に問題はないみたいですね。Key単位でQuota(単位時間当たりのAPIアクセス回数)が決められていて、Quotaを超えるAPIアクセスは全部エラーで跳ねられます。Keyを埋め込んでしまうと、そのビルドを使っているユーザ全員がそのQuotaに縛られるので、ある時突然Googleドライブにアクセスできなくなる可能性があります。Keyを取っておいたほうが安心かなとも思います。OSをUSBメモリからブートするときのメモランキングに参加してみました。クリックしていただければ嬉しいです。