Googleドライブ対応アプリを作る

# Googleドライブ対応アプリとは
ここでいうGoogleドライブ対応アプリとは、モバイルにインストールするGoogleドライブ本体のアプリではありません。
ブラウザでGoogleドライブを開き、右クリックで追加できる以下のイメージのものです。

<img width="1232" alt="スクリーンショット 2017-04-11 10.02.07.png" src="https://qiita-image-store.s3.amazonaws.com/0/92538/78ad2bd4-0acf-e9b3-8805-e1179a2e813b.png">

<img width="1230" alt="スクリーンショット 2017-04-11 10.03.27.png" src="https://qiita-image-store.s3.amazonaws.com/0/92538/de0cea62-e680-ff51-e4e8-160bae95078e.png">


# 実際何なのか
Googleドライブ対応アプリはChromeウェブストアで配布されているChromeアプリです。

<img width="1225" alt="スクリーンショット 2017-04-11 10.08.35.png" src="https://qiita-image-store.s3.amazonaws.com/0/92538/06bf005d-1ad7-d47e-6b1c-6e9fe627e2e3.png">

Chromeアプリには大きく分けて２種類あります。
「Hosted Apps」と「Packaged Apps」です。
※Chrome拡張機能とは別物です

### Hosted Apps
自分で準備したWebサイトをアプリとしてChromeウェブストアで公開する方式です。
ドメインの所有証明が必要になります。
サーバなど、Webサイトとして必要なものは自分で用意します。

### Packaged Apps
Webサイトに必要なファイル(HTMLやJavaScript)を圧縮してアップロードします。
ユーザのローカル環境にインストールするので、オフライン実行できるアプリを作ることもできます。
自前でサーバを準備する必要がありません。
仕組み的にはChrome拡張と同じです。

### Extensions (Chrome拡張)
Chromeブラウザにいろいろな機能を追加するものです。
アドレスバーやツールバーにボタンを追加しブラウザを拡張することができます。

詳しくは以下の記事を参照ください。
[Webアプリを公開しよう！ Chrome Web Store／Apps入門](http://gihyo.jp/dev/serial/01/chrome-web-store/0001)

# 作り方
ここでは Hosted Apps でGoogleドライブ対応アプリを作成する方法を説明します。

### Webサイトの作成
Webサイトを作成します。
ここで作成するWebアプリは、特別な作りにする必要はありません。
一般的なWebアプリの作成なので、詳細は割愛します。

### manifestファイルの作成
アプリの設定ファイルを作成します。
ファイル名はmanifest.jsonです。
この設定ファイルにGoogleドライブ対応であることを記述します。

すべてのフォーマットは[公式サイト](https://developer.chrome.com/extensions/manifest)に掲載されています。

```json:manifest.json
{
  "name": "HelloApp",
  "description": "Chrome Hosted App sample.",
  "version": "0.1",
  "manifest_version": 2,
  "app": {
    "urls": ["*://example.com/"],
    "launch": {
      "web_url": "https://example.com/"
    }
  },
  "icons": {
    "128": "icon_128.png"
  },
  "container": ["GOOGLE_DRIVE"]
}
```

|キー|設定内容|
|:--|:--|
|name|アプリ名。|
|description|アプリの説明。ストア上のアプリ説明欄に表示される。|
|version|アプリのバージョン。更新したら数字をカウントアップする。|
|manifest_version|マニフェストバージョン。2017/4/11現在は2。|
|urls, web_url|提供するWebアプリのURL。|
|icons|最低でもアプリのアイコン"128"は設定する。|
|container|Googleドライブ対応であることを設定する。|

### アイコンなどイメージの準備
以下のイメージ画像が必要です。

アイコンとして、128×128
スクリーンショットとして、640×400
タイル（小）として、440×280

### アップロードして公開
manifest.jsonとicon_128.pngを一つのディレクトリにまとめzipに圧縮します。

Chromeウェブストアの「歯車」→「デベロッパーダッシュボード」へ移動します。

「Add new Item」をクリックし、zipをアップロードします。

準備しておいたイメージをアップロードし、カテゴリ、言語、公開地域などを設定し、公開ボタンを押します。

<img width="1225" alt="スクリーンショット 2017-04-11 14.52.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/92538/b12aeb99-875e-bbf2-ed04-e9c4fad9cb2d.png">
<img width="1220" alt="スクリーンショット 2017-04-11 14.55.48.png" src="https://qiita-image-store.s3.amazonaws.com/0/92538/0dab9d55-e3b3-ee2e-1a14-0d9124d4cec7.png">
<img width="1213" alt="スクリーンショット 2017-04-11 14.50.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/92538/497720e9-cb6c-c84a-4195-1663f32ab27f.png">
<img width="1225" alt="スクリーンショット 2017-04-11 14.51.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/92538/03dca097-f355-cf98-1db8-1d002c6f1577.png">


ステータスが審査中になるので、審査に通ればChromeウェブストアに公開され、Googleドライブの「アプリを追加」から検索可能となります。

### ドメイン限定公開
ドメイン内限定の公開も可能です。
アプリの絞り込みに「XXX.co.jp向け」というドメイン限定の項目が存在します。

特権管理者で管理コンソールにログイン。
Chromeウェブストアの使用と、アプリの限定公開の許可を行います。
その後、「限定公開」の「ドメインのすべてのユーザ」を選択して公開します。

公開までの手順は、[公式のヘルプページ](https://support.google.com/chrome/a/answer/2663860?hl=ja)を参照ください。

### Packaged Apps について
ちなみに Packaged Apps でも設定すればGoogleドライブ対応にできますが、以下のイメージのように「接続」となっているので、動かせないかもしれません。

<img width="750" alt="スクリーンショット 2017-04-11 10.19.07.png" src="https://qiita-image-store.s3.amazonaws.com/0/92538/d22bf13c-f381-4eb7-bf64-ee585810c1b1.png">

実際にいくつかの Packaged Apps であろうアプリを接続しましたが、「アプリで開く」の一覧に出てきませんでした。
が、確証はないです。すみません。。

なお、各アプリの設定や接続解除は「歯車」→「設定」→「アプリの管理」から行えます。

<img width="989" alt="スクリーンショット 2017-04-11 10.24.46.png" src="https://qiita-image-store.s3.amazonaws.com/0/92538/515fd344-065b-8436-3701-5d68647ee024.png">

# 最後に
Chromeアプリは以下の記事にもあるように、新規で作成したものは Chrome OS でしか利用できなくなっています。

[【悲報】Chromeアプリ for Mac / Windows / Linuxが終了へ。その納得の理由とは？](http://www.softantenna.com/wp/software/chrome-apps-retired/)

デベロッパーダッシュボードを見ると、「Google ドライブ用アプリや Google Apps のアドオンには適用されません」とありますが、今後どうなるのでしょうか。。

<img width="988" alt="スクリーンショット 2017-04-11 10.50.31.png" src="https://qiita-image-store.s3.amazonaws.com/0/92538/60f0a860-5779-9192-7d14-4be2bb1fe81f.png">