IFTTTから、同一のGoogle Drive spreadsheetに出退勤を記録したい！

#IFTTTとは？
https://ifttt.com/

もし(IF)、これ(This）をしたら(Then)こうする(That)の適当なところをとって、「IFTTT」

iOS/Androidのアプリも出ていて、「これをしたら」の部分を、スマホの動作に合わせることもできる。

* このエリアに入ったら/出たら・・・
* 連絡先が追加されたら・・・
* 写真が追加されたら・・・
* ボタンが押下されたら・・・←今回使うのはこれ。

[iOSアプリ](https://itunes.apple.com/us/app/ifttt/id660944635?mt=8)
[Androidアプリ](https://play.google.com/store/apps/details?id=com.ifttt.ifttt&hl=ja)

使うには、IFTTTアカウント/Googleアカウントが必要なので、[取得](https://ifttt.com/join)してね。


# で、今回やりたいこと

* 同じ会社のひとが、同一の共有したスプレッドシートに対して、出勤簿をつけたい。
* スマホで、ボタンポチッと押すだけで、簡単に管理したい

イメージ
<img width="300px" alt="イメージ" src="https://qiita-image-store.s3.amazonaws.com/0/29550/8b814ad7-f695-ef19-25dc-67f01a2c373f.png">

# スマホ側で設定

1. IFTTTアプリ起動/必要であれば、ログイン
2. 下３つメニューの「My Applets」を選択
3. 右上の「＋」を押下
4. if / + this / then / that が現れる
5. + thisを押下
6. 「Button widget」を探して押下
7. Select triggerは、「Button press」を押下
8. if / (Button press) / then / + that が現れる
9. + thatを押下
10. 「Google Drive」を探して押下
11. Select actionで「Add row to spreadsheet」を選択
12. ここで、Google Driveと接続していない場合は、認証が入るので、接続したいアカウントと接続。
13. Add row to spredsheetの内容は、下記に詳しく書く

* Spreadsheet name
    * スプレッドシートタイトル
    * 今回は、「Attendance」
* Formatted row
    * １行に対して入れる内容
    * 今回は「菅原||| 出勤 ||| {{OccurredAt}}」
* Drive folder path
    * フォルダのパス
    * 今回は、「Attendance」

<img width="300px" alt="イメージ" src="https://qiita-image-store.s3.amazonaws.com/0/29550/ae32728e-fa9e-1e3a-7536-f4b0f0f2dc24.png">

設定できたら、「Save」して保存。

# ここで、ボタンを押下して、うまくいくかをテスト・・・の前にボタンを設置

iOSとAndroidでやり方が異なるので注意。（私は、iOSやった後に、Androidをやったので、ちょっと手間取った）

## iOS
iOSは、「ホームスクリーンにIFTTTアプリを起動するリンクをつける」形で、ボタンを作る。
なので、「ホームスクリーンのボタン」→「IFTTTアプリ立ち上がり」→「IFTTTアプリの中のボタンを押下する」、という手順を踏むため、２度押さなくてはならない。

1. My Appletsから、ホームスクリーンに追加したいアプレットを選択する
2. 「Widget settings ＞」を押下
3. Configure widgetに遷移
4. Homescreen icon の 「Add」を押下するとSafariが起動
5. Step1,2,3の順で、ホームスクリーンにボタンが作成される。必要に応じて任意の場所に移動。

## Android
Androidは、「ウィジェットにIFTTTで設定したアプレットを追加」の形でボタンを作る。
なので、iOSと違い、１度だけボタンを押下すれば、目的の動作がされる。

1. 壁紙/ウィジェット/設定が選択できる画面を起動（アプリアイコンがないところを長押し）
2. 「ウィジェット」を選択
3. IFTTTのメニューで、「IFTTT Small 1x1」を選択（長押し）
4. Select widgetメニューが出るので、ボタンにしたいウィジェットを選択

# 動作確認
ボタンを押下したら、
* Google Driveに「Attendance」フォルダができていて
* 「Attendance」という名前のスプレッドシート、その中には設定した「名前、出勤、時刻」が記載される。
* ２回目を押下したら、１回目の下に記録される

# とまあ、ここまでは、普通のIFTTT使いならやったことあるはず。
同一のアカウント内で、もうひとつほぼ同じ設定で、「退勤」が記録できるものを作成。
## 問題はこのあと。
**別の人をどうやって、同一のスプレッドシートに記載させるか**

なお、この操作は、わかりやすくするために
A　:　一番最初に「Attendance」フォルダ、スプレッドシートを作った人
B　:　Aの作った「Attendance」フォルダ、スプレッドシートに書き込みたい人
と役割を分ける。

【A】
1. 「Attendance」フォルダを右クリックして、「共有」する
2. このとき、「編集可能」にしていないと、後々うまくいかないので、注意する
3. メールアドレスを記入したり、社内の共有にしたり、いろいろと範囲を指定して、送信する

【B】
1. Aからの「Attendance」フォルダが、Google Driveの共有アイテムに表示される
2. 右クリックすると「マイドライブに追加」というメニューが出るので押下する
3. マイドライブに、Attendanceフォルダ、Attendanceのスプレッドシートが見られるか確認

----
もし、Bさんも、Aさんと同じように先に自分でボタンを作り、共有までしていないと、「共有したAttendanceフォルダ」と「共有していない自分のAttendanceフォルダ」の２個ができる。
その場合は、「共有していない自分のAttendanceフォルダ」を削除して、動作確認の要領でボタンを押下する。

**すると、「Bさん、出勤、時刻」がAttendanceのスプレッドシートに記載されれば、OK**

要は、「マイフォルダ」の中に入ってしまえば、共有していようと、そうでなかろうとOK
ただし、同一フォルダ名がOKなので、残っていると、どちらのスプレッドシートに記載される不明

### 蛇足
最初、「Attendance」ではなく「出勤簿」という名称でやろうとしたら、なぜかスマホのIFTTTボタンを押下するたびに新しいスプレッドシートが出来上がる、ということがあり、Attendanceというアルファベットにした。ただ、「菅原」という名前でやったら、ちゃんと行追加されていたので、理由は不明。とりあえずこれは蛇足なメモ。

--------------
文字ばかりで、長々とすみません。もうちょっと、画像を付け足すのは後でやります。
今は眠い・・・おやすみなさいε-(´∀｀; )

【追加：一応、こんな感じでできたよ、というご報告】
![image](https://qiita-image-store.s3.amazonaws.com/0/29550/e82300bf-6bb4-a4a3-29e6-c3c533bb2bdb.png)

え？日付の形式？まあ、その辺は気にしなさんな・・・。