PlatioStartコンポーネントの使い方

# 概要
PlatioStartコンポーネントは、Platioの[Webhooks](http://doc.plat.io/api/ja/webhooks.html)で呼び出されるフローのStartコンポーネントとして使用します。
Platioは新しいレコードが追加されたとき、既存のレコードが更新されたとき、既存のレコードが削除された時にHTTPリクエストをPOSTするように設定できますので、各イベントごとに送られてくるリクエストに含まれる情報から取得したい部分を取り出すためのコンポーネントとなります。

# 使用時の手順
1. Platioでプレート、アプリを作成する
2. アプリのAPIトークンを作成する
3. WARP（フローサービス管理コンソール、フローデザイナー）でPlatioへのコネクションを作成する
4. フローデザイナーで新規フローを作成する
5. Startコンポーネントを右クリックして「開始コンポーネントの置き換え/PlatioStart」コンポーネントをPlatioStartコンポーネントへ置き換える
　　![de1.png](https://qiita-image-store.s3.amazonaws.com/0/180278/ca68e401-d64b-0440-487f-73ec0c7796e3.png)

6. PlatioStartコンポーネントをダブルクリックし、作成したPlatioコネクションを選択する
　　![de3.png](https://qiita-image-store.s3.amazonaws.com/0/180278/d64fc8c7-0c70-930c-3701-dba43cccb994.png)

7. WebHookを設定するアプリケーションから取得する情報を選択する
　　![de2.png](https://qiita-image-store.s3.amazonaws.com/0/180278/76de3654-ca76-6f75-3f11-3ff9a31be2ec.png)

8. 取得する情報を使いフローを完成させる（フローが正常終了した場合はフローの終了コンポーネントとしてHttpEndコンポーネントを使用し、「ステータスコード」として「200 OK」を設定）
　　![de4.png](https://qiita-image-store.s3.amazonaws.com/0/180278/caad1e4b-058a-2ad0-26bc-f09e52c072ad.png)

9. 作成したフローへURLトリガーを設定（※URLをコピーしておきます）
　　![de5.png](https://qiita-image-store.s3.amazonaws.com/0/180278/f39e47d7-1a8f-8fd0-3987-08ebdfb64e67.png)

10. Platio Studioでプレートを選択し「外部連携の管理」を選択する
　　![wh1.PNG](https://qiita-image-store.s3.amazonaws.com/0/180278/b955fc45-0943-727c-4df4-62b37e726de7.png)

11. Webhookを追加するアプリケーションを選択する
    ![wh2.PNG](https://qiita-image-store.s3.amazonaws.com/0/180278/cae66603-973f-7845-4f8b-3eba333be09f.png)

12. 「Webhookを追加」ボタンから、コピーしておいたURLを使いWebhookを追加する
　　![wh3.PNG](https://qiita-image-store.s3.amazonaws.com/0/180278/1c9043c4-7ee9-f724-1006-da281102067c.png)
↓（※ここでコピーしておいたURLを入力します）
　　![wh4.PNG](https://qiita-image-store.s3.amazonaws.com/0/180278/568d4fa9-8581-f058-f260-5b31f239af97.png)
↓（※３つのイベントすべてを選択しています）
　　![wh5.PNG](https://qiita-image-store.s3.amazonaws.com/0/180278/05ea371c-2842-60b5-dfd8-ba472e1d3b3d.png)


#動作確認
Platio iOSアプリからレコードの追加、編集、削除を行い、それぞれのイベントごとにフローが実行されることを確認します。

```xml:レコードを追加したときのPlatioStartコンポーネントの出力ストリーム例
<?xml version="1.0" encoding="utf-8"?>
<RecordSet xmlns="http://www.infoteria.com/asteria/flowlibrary/record">
	<Record>
		<Field name="_Event" type="String">insertRecord</Field>
		<Field name="_RecordId" type="String">rgitws5ccenge7lh32oz3lkne7i</Field>
		<Field name="名前" type="String">Test a</Field>
		<Field name="画像 name" type="String">image.jpeg</Field>
		<Field name="画像 size" type="Integer">1768202</Field>
		<Field name="_CreatedAt" type="DateTime">2018-01-10T04:21:21.464 UTC</Field>
		<Field name="_UpdatedAt" type="DateTime">2018-01-10T04:21:21.464 UTC</Field>
	</Record>
</RecordSet>
```
追加時は_Eventの値が「insertRecord」になっています。

```xml:レコードを編集したときのPlatioStartコンポーネントの出力ストリーム例
<?xml version="1.0" encoding="utf-8"?>
<RecordSet xmlns="http://www.infoteria.com/asteria/flowlibrary/record">
	<Record>
		<Field name="_Event" type="String">updateRecord</Field>
		<Field name="_RecordId" type="String">rgitws5ccenge7lh32oz3lkne7i</Field>
		<Field name="名前" type="String">Test apple</Field>
		<Field name="画像 name" type="String">image.jpeg</Field>
		<Field name="画像 size" type="Integer">1768202</Field>
		<Field name="_CreatedAt" type="DateTime">2018-01-10T04:21:21.464 UTC</Field>
		<Field name="_UpdatedAt" type="DateTime">2018-01-10T04:21:40.208 UTC</Field>
	</Record>
</RecordSet>
```
更新時は_Eventの値が「updateRecord」になっています。

```xml:レコードを削除したときのPlatioStartコンポーネントの出力ストリーム例
<?xml version="1.0" encoding="utf-8"?>
<RecordSet xmlns="http://www.infoteria.com/asteria/flowlibrary/record">
	<Record>
		<Field name="_Event" type="String">deleteRecord</Field>
		<Field name="_RecordId" type="String">rgitws5ccenge7lh32oz3lkne7i</Field>
		<Field name="名前" null="true" type="String"/>
		<Field name="画像 name" null="true" type="String"/>
		<Field name="画像 size" null="true" type="Integer"/>
		<Field name="_CreatedAt" type="DateTime"></Field>
		<Field name="_UpdatedAt" type="DateTime"></Field>
	</Record>
</RecordSet>
```
削除時は_Eventの値が「deleteRecord」になっています。

１つのURLで３つのイベントを受けても_Eventの値で処理を分岐することができます。

#注意
Platioから指定したURLへHTTPリクエストが届く必要がありますので、社内の閉じた環境では動作しません。