Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Office 365を利用して GPS Botもどきをつくろう

0d420ebec6121700c2c86a963840c71a?s=47 hikky
August 03, 2019

Office 365を利用して GPS Botもどきをつくろう

0d420ebec6121700c2c86a963840c71a?s=128

hikky

August 03, 2019
Tweet

Transcript

  1. Sensitivity: Confidential #jpemsug Office 365を利用して GPS Botもどきをつくろう hikky(@ken_hikita) 2019/08/03 Home365祭り

  2. Sensitivity: Confidential # h365ug 2 自己紹介 hikky(@ken_hikita) 某会社のコーポレートエンジニアやってます(SIer経験も有) やってきたこと •

    オフコン・プリンタ保守、官公庁システムリプレイス、オフィス移転増床閉鎖、 NW構築、サーバ構築、ISMS、PMS、ASP SaaS認証、M&Aプロマネ、CRM/ERP導入 ヘルプデスク、コールセンター構築 今やってること • 8月から別会社 イノベーションテックやデザイン思考テストなどAIの会社です 好きなOffice 365サービス • OneDrive 保持免許 • 第一種大型自動車免許 • 第一種けん引自動車免許 ブログ:https://blog.intracker.net/ 3児の父(見えないって大体言われる) Japan EMS User Group運営メンバーを一応やってます
  3. Sensitivity: Confidential # h365ug 3 本題に行く前に・・・ home365だからこっちが本題じゃね? 逸般的な誤家庭内の会話です すべて実話です。 嫁

    誤家庭 3 そう嫁さんの話し
  4. Sensitivity: Confidential # h365ug 4 本題 逸般的な誤家庭内の会話です すべて実話です。 嫁 このスマホよくない?

    Snapdragon 625だって そんなCPUじゃ嫌だ CPU大事 UMIDIGI A5 Proもよさそうだよねぇ TypeCじゃないから認めない 自宅ラック欲しい っていったらどうする? 場所がない 4 場所あったらいいの? 構わない
  5. Sensitivity: Confidential # h365ug 5 本題 逸般的な誤家庭内の会話です すべて実話です。 5 1984ギガバイト

    いやゴーストバスターズの略でしょw これご存知ですか?↓
  6. Sensitivity: Confidential # h365ug 6 こっちがおまけ(という名の本題) 小学生のお子さんがいらっしゃる方挙手! Forms + PowerBIなんか使わないよw

    6
  7. Sensitivity: Confidential # h365ug 7 どうしてますか? お子さんの帰宅時のお迎え 7 14時だったり15時だったり・・・ 下校班の集まりやふざけて帰る子がいて

    時間通りに帰ってこなかったり・・・
  8. Sensitivity: Confidential # h365ug 8 こんな手紙きません? 8

  9. Sensitivity: Confidential # h365ug 9 よくあるソリューション 1. キッズ携帯 2. 使い古しスマホ持たせる

    3. GPS製品 4. 帰宅時間の手紙に合わせてお迎え 9
  10. Sensitivity: Confidential #h365ug GPS BoT 10

  11. Sensitivity: Confidential # h365ug 11 GPS BoTは何ができるのか 1. 居場所がわかる 2.

    指定領域に入ったら通知 3. 指定領域をでたら通知 4. 行動エリアから飛び出したら通知 11 とっても便利!
  12. Sensitivity: Confidential # h365ug 12 こんな感じで移動履歴も見える 12

  13. Sensitivity: Confidential # h365ug 13 13 GPS BoT の宣伝がしたいわけじゃない

  14. Sensitivity: Confidential # h365ug 14 Office 365(達)でやらないと! 14 必要なものと利用するアプリたち ➢

    Microsoft Flow ➢ Azure Automation ➢ Xamarin ➢ Firebase CloudMessage (ほんとはAzure SNS使いたかった・・・) ➢ Android端末(開発者モードをONにしてね)
  15. Sensitivity: Confidential # h365ug 15 どうやってやるの?コードかかないとだめなの? 15 以下の手順 1. XamarinでAndroidアプリを作成する

    2. 端末へアプリをインストールする 3. Firebase Cloud Message 4. Microsoft Flowの位置トリガーを利用する 5. Azure Automationから通知APIを実行する 6. アプリをインストールした端末全てに通知が届く
  16. Sensitivity: Confidential # h365ug 16 16 ものすごい難しそう!

  17. Sensitivity: Confidential # h365ug 17 コードかかないとだめなの? 17 私もコードほとんど書けません。 docsにあるコードをまるっとコピペでつくります ↓これをそのままやります

    https://docs.microsoft.com/ja-jp/xamarin/android/data-cloud/google- messaging/remote-notifications-with-fcm?tabs=windows
  18. Sensitivity: Confidential # h365ug 18 Android端末へアプリインストール 18 Visual Studio でビルド時に指定すればアプリが端末に入るよ!

  19. Sensitivity: Confidential # h365ug 19 Firebase Cloud Message 19 これも↓のdocsをまるこぴ

    https://docs.microsoft.com/ja-jp/xamarin/android/data-cloud/google- messaging/firebase-cloud-messaging
  20. Sensitivity: Confidential # h365ug 20 なんでAzure Automation使うの? 20 FlowのHTTPコネクタが有料になっちゃったから・・・ Azure

    Automationなら500時間/月までタダ!最高! PowerShellやPythonが利用できるので大抵のことはできる ハイブリッド構成でオンプレミスのサーバに指示を出すことも可能 https://blog.intracker.net/archives/1762
  21. Sensitivity: Confidential #h365ug PowerShellで書くコードはこれだけ! 21 param ( [Parameter(Mandatory=$false)] [String] $param_location

    ) $location_message = $param_location + "付近にな りました" $authKey = Get-AutomationVariable -Name 'fcmApiKey' $location_message $postText=@" { "to": "/topics/all", "data": { "url": "https://www.yahoo.jp" }, "notification": { "title": "$($location_message)", "body": "近づきました" } } "@ $postBody = [Text.Encoding]::UTF8.GetBytes($postText) $headers = @{ 'Content-Type' = 'application/json' 'Authorization' = $authKey } $postText $postBody = [Text.Encoding]::UTF8.GetBytes($postText) $postUri = "https://fcm.googleapis.com/fcm/send" $Response = Invoke-RestMethod -Method POST - Headers $headers -Uri $postUri -Body $postBody $Response
  22. Sensitivity: Confidential # h365ug 22 Azure Automation 22

  23. Sensitivity: Confidential # h365ug 23 ようやく出番! 2 3

  24. Sensitivity: Confidential # h365ug 24 位置情報トリガー 24

  25. Sensitivity: Confidential # h365ug 25 ジョブの作成 25 Power Shellで指定したパラメータを設定することが可能 ジョブの待機を“はい”にするとジョブ実行完了まで次のフローが実行されないので

    ジョブ完了後に次のアクションを実行させることもできる
  26. Sensitivity: Confidential # h365ug 26 実行結果 26 位置情報トリガー ↓ Azure

    Automationジョブ作成 ↓ Azure Automationジョブ実行 と動作するので、タイムラグが多少でます 位置情報トリガーの範囲を少し大きめに設定し ておくといい感じ
  27. Sensitivity: Confidential # h365ug 27 FlowのSend me a mobile notificationでよくない?

    27 Flowアプリがない端末でも受信できる 複数端末に同じメッセージを飛ばせる ので、FCMを使ってみました。 Flowって同一アカウントで別端末って何台まで いけるんでしょうか・・・?
  28. Sensitivity: Confidential # h365ug 28 なんでそんなことしたの? 28 製品名 初期費用 月

    額 GPS BoT ¥4,800(税別) ¥480(税別) キッズ携帯(キャリア) 約¥10,000 ¥500~¥980(2年縛りとかある) Office 365 Business Premium ¥0 ¥1,360(税別)年間契約の場合 Office 365の契約があるし、Flowで位置情報トリガーもでたし どうにかしてGPS BoTみたいなものがつくれないかなと思ったのがきっかけです でも、Flowの位置情報トリガー最近全然反応してくれない・・・orz
  29. Sensitivity: Confidential # h365ug 29 まとめ 29 Office365を契約している逸般の誤家庭であればo365利用料金内で構築可能 Officeソフトも使えて、お子様のお迎えも無駄なくいける! (位置情報トリガーが動いてくれれば・・・)

    Office 365を契約して誤家庭で使い倒そう!!
  30. Sensitivity: Confidential #h365ug https://blog.intracker.net/ @ken_hikita hank ou! 30