Azure Face APIで顔を識別する手順をcurlで追う

会社のテックWebマガジン コピペテック で、micro:bitと組み合わせた入室管理アプリケーションの記事を公開予定です。
紹介しているのは、人感センサー(焦電赤外線センサー)でオフィスの入出を検知してmicro:bitからiPhoneにコマンドを送って写真を撮り、IFTTT経由でWebhookを叩いて、Microsoft AzureのFace APIで誰が来たか識別し、Slackにお知らせするというシステムです。

このシステムでは、人の検出と、新しく来た人の登録するところでAzure Face APIを利用していますが、この手順について調べた内容についてせっかくなのでまとめて置きたいと思います。

手元の画像でFace APIについてちょろっと試すには、サイトのトップページでも試すことができます。まずは、ここで遊んで精度を確認してみるのも良いかもしれません。

AzureにFace APIリソースを追加

Face APIを利用するには、Azureポータルで「Face API」リソースを作成して、APIキーを取得します。

Azure ポータルにサインインして、画面の左のメニューから、[すべてのサービス] > [AI + MACHINE LEARNING]から[Cognitive Service]を選択します。

Cognitive Servicesのページに切り替わるので、左上の[追加]ボタンまたは[Congnitive Serviesの作成]ボタンをクリックします。

AI + Machine Learningのページで、Cognitive Servicesの[さらに表示]をクリックします。


“Azure Face APIで顔を識別する手順をcurlで追う” の続きを読む

MS Teams のbot開発の始め方

Get started on the Microsoft Teams platform with Node.jsを参考に、MS Teams用のbot作成に必要な手順のみを確認したメモになります。

概要

MS TeamsのBotは、Botの他にTabなどを含むアプリケーションとして定義し、アプリケーションをMS Teamsにデプロイすることで利用可能になります。
また、MS Teamsのbotは、MS Bot frameworkに登録し、それをアプリケーションのmanifestに指定する必要があります。

Botのホストはどこでも可能で、エンドポイントはBot frameworkのBotの設定で指定します。
Botの認証は、Bot frameworkで発行したパスワードにより行います。

(Bot Frameworkは、Azure Bot Serviceに移行されました。以下の記事のBot Frameworkの記述はAzure Bot Serviceに置き換えて参照ください)

事前準備

Office 365のテナントを用意する

Office 365 Developer Programに登録すると1年間利用可能な開発用のオフィス365テナントを入手できます。

“MS Teams のbot開発の始め方” の続きを読む

Azure Web AppにデプロイしたPHPからHTTPSサイトにアクセスする

cUrlGuzzleで外部のAPIを利用するアプリケーションをAzure WebAppで動かした場合、証明書が見つからずAPIにHTTPSで接続できない問題が発生します。

HTTPSアクセスする際のSSL証明書の場所は、php.iniのcurl.cainfoに設定しますが、Azure Web Appではd:\home\site\ini/settings.iniファイルで設定できます。

公式ドキュメントは、Azure App Service Web Apps での PHP の構成方法
「PHP_INI_SYSTEM 構成設定の変更」を参照ください。

settings.iniの場所をアプリ設定で指定

[アプリケーション設定] > [アプリの設定]に、キー PHP_INI_SCAN_DIR、値 d:\home\site\ini を追加します。

guzzle-on-azure-webapp
“Azure Web AppにデプロイしたPHPからHTTPSサイトにアクセスする” の続きを読む

Azure ADに登録されているAPI用のアクセストークンをJWTで取得するには

Office 365 Rest APIに対してJWT Bearer Tokenフローで利用するアプリケーションを作るにあたって、まずは、ADAL(Active Directory Authentication Library)を利用したチュートリアルAuthenticating to Azure AD in daemon apps with certificatesを試してみました。

このチュートリアルは、Azure ADの認証シナリオのうち、「クライアント資格情報を使用したサービス間の呼び出し」を実装しています。
このシナリオでは、Azure ADは、OAuthの以下の仕様をサポートします。

ADALを利用すると、設定と秘密鍵を指定するだけで、JWT(Json Web Token)を使ってAPIのアクセストークンを取得するリクエストの実装はライブラリにおまかせできますが、ライブラリが内部でやっていることを図にしてみると以下のようになります。
authenticating-to-azure-ad-with-certificates
(クライアント資格情報を使用したサービス間の呼び出しの図と同じです)
“Azure ADに登録されているAPI用のアクセストークンをJWTで取得するには” の続きを読む

Office 365 REST APIを利用したRuby on Railsアプリの作成

Office 365は、Outlook(Exchagne)、OneDriveおよびVideoにREST APIが用意されています。
この記事では、Office 365 REST APIを利用してOutlookのリソースにアクセスする手順について確認した内容をまとめてみました。

API関連の情報ソース

APIを利用を始めるにあたって、以下のようなドキュメントを参考にしました。

REST API全体のリファレンスについては、Office 365 API reference、利用可能なOutlookのリソースについては、Resource reference for the Mail, Calendar, Contacts, and Task REST APIsで確認できます。

日本語版は、Office 365 API リファレンスがあります。

その他の参考情報としては

以下の公式ブログなどが参考になります。

“Office 365 REST APIを利用したRuby on Railsアプリの作成” の続きを読む

Microsoft Bot Framework BotConnector BotをSlackから利用する

なぜかBotが最近盛り上がっていますが、先日MSのBuild2016にてMicrosoft Bot Frameworkが発表されました。

日本語の速報記事は、以下が参考になりました。

開発の概要は、公式ブログが参考になります。

Build2016 : Microsoft Bot Framework を使った Bot アプリ作成 | 青い空の向こうへ

Build2016の点では、BotFrameworkは、BotConnectorBotBduilerの2つが利用可能になっており、BotDirectoryはComming soon..のようです。

BotDirectoryは、Slack App Directoryのようなものですが、BotConnectorは、あくまでSlackやSkypeから見るとバックエンドのBotなので、BotDirectoryがユーザー体験としてどのような構成になるのかが気になるところです。

また、将来的に追加される機能としては、自然言語解析ベースの機械学習機能が利用できるようになるようです。
Build 2016 (Part 8) Microsoft Bot Frameworkの後半で紹介されています。なかなかおもしろいです。
この辺りについては、LUISとの統合がすでに用意されています。
LUISについては、ムービーが用意されているのでMicrosoft LUIS tutorialを参照してください。

以下、BotBduilerで作成したBotConnector用のBotをAzureにデプロイしてSlackから利用するところまでの
現在利用可能な機能を試してみたのでまとめてみます。

.NetのBotは公式ドキュメントのチュートリアルに沿って動作確認ができるので、Node.jsのSDKを利用して、Azure App ServiceにデプロイしてBotConnectorに設定、Slackと連携するところまで実装してみます。
“Microsoft Bot Framework BotConnector BotをSlackから利用する” の続きを読む

Azure WebアプリにNode.js expressアプリをGitからデプロイ

Azureにデプロイするアプリの開発は.Net以外でもVisual StudioのAzure統合ぶりがとても便利そうですが、Node.jsアプリの開発となると、私も含め普通はMacで開発している人がほとんどかと思います。
Build 2016で発表があったBotFrameworkを試していて、BotをAzure WebAppにデプロイするために、Azure向けのNode.jsアプリをMac OS X上で開発・デプロイする手順について調べてみたことをまとめてみます。

割りと驚いたのは、いつのまにかHerokuの様にgitと連携したデプロイができるようになっているんですね。非常にこれは便利です。
今回は、Bitbucketにpushしたらデプロイする手順を試しています。

Azureは、2,3年前にWebSitesを試して以来ですがとても進化してますね。
以前の記事は「Windows Azure WebサイトでFuelPHPアプリを動かす」の時は旧ポータルでした。

Node.jsの開発については、改めてまとめずとも公式ドキュメントにもちゃんと日本語で説明があります。
Azure App Service での Node.js Web アプリの作成

Hello Worldまでは、この説明のみで必要十分なので、npmでパッケージを管理する例としてexpressを利用する例についてもまとめてみました。
“Azure WebアプリにNode.js expressアプリをGitからデプロイ” の続きを読む

Office 365のExchangeをリモートPower Shellで管理する

Office 365のExchange OnlineはExchange Server 2013ベースのため、Exchangeの管理はWebの管理者センターおよびExchange管理シェルが利用できます

Exchange管理シェルをOffice 365のExchange Onlineに対して実行する手順について、リモート PowerShell による Exchange への接続のドキュメントの内容を確認したのでメモしておきます

動作はWindows 8.1で試しています

Windows PowerShellは管理者としてを実行します

事前準備

Windows PowerShellで署名付きスクリプトを許可するように実行ポリシーを変更する必要があります
以下のコマンドを実行します

PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policie
s のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y

実行ポリシーについての参考記事: WindowsでPowerShellスクリプトの実行セキュリティポリシーを変更する
“Office 365のExchangeをリモートPower Shellで管理する” の続きを読む

Office 365 カスタムドメインを追加しRoute 53に各種レコードを設定する

Office 365にカスタムドメインを追加して、AWS Route 53にDNS設定を追加する手順をまとめてみました

Office 365へのドメインの追加については、公式ドキュメント「Office 365 にユーザーとドメインを追加する」に記載されています

メモは、ドメインを取得後、Route 53のHosted Zoneを作成し、ドメインの移管は済んでいるところからになります
お名前.comで取得したドメインの移管については、前回の記事「お名前.comで取得したドメインをRoute 53に移管」を参考にしてください

ドメイン周りの設定に若干苦労したので、そこを中心に説明しています
説明で追加するドメインは、適当に取得した”trial365.xyz”というドメインを使っています

  1. [Office 365 管理者センター]を開き、左のメニューより[ドメイン]を開く
  2. [ドメインの追加]をクリックすると[手順1 ドメインの確認]が始まる

  3. [ドメインと DNS について理解しておくべきこと]で[始めましょう]をクリック

  4. [どのドメインを使用しますか?] テキストボックスにドメインを入力して [次へ]をクリック

  5. [独自の trial365.xyz を表示するためにこの TXT レコードを追加します] のページでは、TXTレコードをDNSサーバーに追加することを要求されます

Office365_AddCustomDomain_ConfirmOwnDomainTXTRecord
“Office 365 カスタムドメインを追加しRoute 53に各種レコードを設定する” の続きを読む