kintone x 機械学習で実現する簡単名刺管理@kintone Café

# 今回作るシステム
今回作るシステムは、Slackに名刺画像をアップロードすると、GoogleのVision APIとNatural Language APIを使って名刺から情報を抽出し、kintoneに登録するというシステムです。全体像としては以下のようになります。
<img width="700" alt="スクリーンショット 2016-11-09 16.01.05.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/7593921a-d59a-4b6c-831b-262440fbc4da.png">

<!--
<img width="600" alt="スクリーンショット 2016-11-09 14.10.24.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/6c1f4c05-42c4-5a5b-150a-47ee4d3eb5c3.png">
-->

# 事前準備
今回のハンズオンは3つのサービスとプログラミング言語Pythonを組み合わせて行います。そのために以下の準備をお願いします。

* kintoneアカウントの取得
* Slackアカウントの取得
* Pythonインストール
* Google Cloud Platform(GCP)への登録とAPIキーの取得

# kintoneアカウントの取得
アプリを作成するのにkintoneが必要です。アカウントを持っていなければ作成してください。
[https://kintone.cybozu.com/jp/](https://kintone.cybozu.com/jp/)

# Slackへ登録
今回はSlack上にBotを作成していきます。そのためSlackアカウントを持っていなかったら以下から作成してください。
[https://slack.com/](https://slack.com/)

チーム名などはよしなに設定してください。

# Pythonのインストール
各種サービスを連携させるためにPythonによるプログラミングを行います。以下のリンクからPython3.5.2をダウンロード・インストールしてください。
[https://www.python.org/downloads/](https://www.python.org/downloads/)

# Google Cloud Platform(GCP)への登録とAPIキーの取得
今回、GCPのサービスであるVision APIとNatural Language APIを使用します。そのためにGCPへの登録とAPIキーの取得を行ってください。

## GCPへの登録
まずは下記リンクからGCPへの登録を行ってください。
[https://cloud.google.com/](https://cloud.google.com/)

登録の際<font color="red">クレジットカード番号の入力を求められる</font>ことに注意してください。ただし、今回のVision APIとNatural Language APIはそれぞれ<font color="red">1000回と5000回使用までは無料</font>ですので課金はされません。

* [Vision API](https://cloud.google.com/vision/)
* [Natural Language API](https://cloud.google.com/natural-language/)


## APIキーの取得
### プロジェクトを作成する
GCPにログインしたら、まずは左上にある「プロジェクトを作成」という部分をクリックして下さい。
<img width="400" alt="スクリーンショット 2016-11-09 12.56.30.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/c508c4f8-6da7-0126-8cc9-84b268b50e9e.png">

新しいプロジェクトを作成するためのフォームが出てきます。ここで、好きなプロジェクト名を入力して「作成」のボタンをクリックして下さい。
<img width="400" alt="スクリーンショット 2016-11-09 12.58.26.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/58106198-3c77-f0dc-aa74-2d4b6dee3c82.png">



### Cloud Vision APIを有効にする
作成したプロジェクトにおいて、目的の「Cloud Vision API」を利用できるように、有効化する作業を行ないます。まずは、左上にあるメニューボタンをクリックしてその中の「API Manager」を選択して下さい。
<img width="400" alt="スクリーンショット 2016-11-09 13.28.11.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/82f08103-7ea4-cb0a-ff34-abc86f6906e5.png">

「ライブラリ」を選択するとGoogleが提供するAPIの一覧画面に移動します。検索フォームで「vision」とキーワード検索して出てきたGoogle Cloud Vision APIを選択してください。
<img width="400" alt="スクリーンショット 2016-11-09 13.30.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/d72829f9-9664-78ad-ecb6-b6643d160695.png">

「Cloud Vision API」の画面に移動します。タイトルの横に、有効、無効を切り替えるためのボタンがあるので有効にして下さい。
<img width="400" alt="スクリーンショット 2016-11-09 13.32.34.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/21ded54c-4a8c-e544-dc59-e1a46e8b3a40.png">

プロジェクトを作成したばかりの場合、まだ認証方法を1つも設定していない状態のため、以下のように「認証情報に進む」というアラートが表示されると思います。その場合は「認証情報に進む」を選択してください。
<img width="400" alt="スクリーンショット 2016-11-09 13.34.48.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/f6bf8c2d-bd58-9ffd-7367-5b61faa8653d.png">

「プロジェクトへの認証情報の追加」という画面が表示されます。「必要な認証情報の種類」には「Cloud Vision API」を選択し、「Google App EngineかGoogle Compute Engineを使用しますか？」という項目は「いいえ」を選択して、「必要な認証情報」のボタンをクリックして下さい。
<img width="579" alt="スクリーンショット 2016-11-09 13.37.26.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/e02cc578-a41a-0663-6da4-e71313bcba85.png">


「サービスアカウントの名前」と「キーのタイプ」、「役割」を選択して、「次へ」をクリックして下さい。サービスアカウントとは、「APIを利用するためのアカウント」で、「キー」とは、そのアカウントで認証をするための情報が含まれたファイルです。この記事では、APIキーによる認証で説明するため、サービスアカウントは利用しません。
<img width="400" alt="スクリーンショット 2016-11-09 13.38.49.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/746dba6c-762c-60ec-0c10-38ebc27f5ded.png">


### APIキーを作成する
続いて、認証に利用するためのAPIキーを作成しましょう。「API Manager」の「認証情報」から「認証情報を作成」を選択してください。そうするとAPIキーと表示されているので、それを選択します。
<img width="804" alt="スクリーンショット 2016-11-09 13.41.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/0f8b0d58-2350-1d7f-2d82-c448169e9a0d.png">

そうすると作成が完了しますので、APIキーをメモしておいてください。メモしたら閉じて結構ですが、**<font color="red">APIキーは絶対に他人に漏れないようにしておいてください。</font>**
<img width="400" alt="スクリーンショット 2016-11-09 13.46.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/77079/8c74d90d-77d9-92d5-b421-ee0a26d601f8.png">

### Natural Language APIを有効にする
Cloud Vision APIと同様に有効にしてください。プロジェクトを作成する必要はありません。


# 記事まとめ
今回のハンズオンの内容は３つの記事にまとめています。

* [kintoneで名刺管理アプリを作ってみよう](http://qiita.com/Hironsan/items/be3497972fb3517cb2b2)
* [Vision APIとNatural Language APIを組み合わせて名刺から情報抽出する](http://qiita.com/Hironsan/items/166515acec35658986b2)
* [名刺から情報を抽出するSlackBotを作る](http://qiita.com/Hironsan/items/9bfba01c37e9fcd7b8af)