Hack & Sports

Microsoft エバンジェリスト&トライアスリート 大田 昌幸の個人ブログ

Skype SDK 開発のドキュメントが辛いので妄想を膨らませる

前回のブログではSkype Developer Platform でできそうなことを紹介してきました。 nt-d.hatenablog.com

「めちゃワクワクしているのでガンガン触って共有していこうかなと思います」という文末で終わっているくらい興奮していたようです。コンセプトは素晴らしいですからね、もちろん今でもワクワクしています!

ただ、今の僕は「開発用ドキュメントが辛いから開発チームにガンガンPull Request送ろう!」とメラメラ興奮しています。

もくじ

このブログではこの気持ちに至った経緯をいくつかのまとまりで紹介していきます

  1. ワクワク開発を進めようとしてドキュメントを確認し始めたあの頃
  2. ドキュメントが辛い・・
  3. Skype開発のために必要なことの整理
  4. 作りたいものの妄想
  5. 次回以降の構成紹介

1.ワクワク開発を進めようとしてドキュメントを確認し始めたあの頃

前回Skype開発の概要を見たときには色々な感想を抱きました。

  • チャットはECサイトのO2O文脈で役立ちそう
  • オンライン英会話とかで使えそう
  • その際のサーバーリソースをSkype側に任せられるから楽そう
  • 途中までBotを使って、難しいやり取りが発生したらSkypeに引き継ぐとかできたらよさそう

よし!ドキュメントを見よう!!

2.ドキュメントが辛い・・

1つ前のblogでSkype開発のページを紹介しました。そのまま[Get Started]をクリックしてスタートしようとしたんですね。

Skype for Business Online uses Azure Active Directory (Azure AD) to provide authentication services that your application can use to obtain rights to access the service APIs. To accomplish this, your application needs to perform the following steps:

•Register your application in Azure AD. To allow your application access to the Skype Web APIs, you need to register your application in Azure AD. This will allow you to establish an identity for your application and specify the permission levels it needs in order to access the APIs.

•Add a sign in feature to your app. When a user visits your website and initiates sign-in, your application makes a request to the Microsoft common OAuth2 login endpoint. Azure AD validates the request and responds with a sign-in page, where the user signs in. After consent flow the UI redirects the user back to your application. If authentication and authorization are successful, Azure AD returns a token and grants access to SfB Online and identifies the current signed-in user.

•Call Skype Web APIs. Your application passes an access token to the Skype Web APIs to authenticate and authorize your application.

なるほどなるほど。認証基盤としては Azure AD を使用する。そして、アプリにOAuthのSign in機能を付けて、API callしろって感じですね。facebookとかと同じような感じ。Learn moreってリンクがあるのでそこをクリックするとこのページに行きます。

アプリ登録とかはOAuth関連のプログラム書いたことある人にはまぁわかる内容なのですが、、Update your codeからがちょい辛い。そもそも僕まだcode書き始めてないからupdateって言われましても・・あと、項目の並び順がちょっと・・・

まぁサンプル見ればいいかと思い、最初のページにリンクされているGitHubのサンプルからskype-web-sdk-samplesというやつを選んでみる。Setupのリンクがあるけど、たどるとこれまたセットアップ方法がわかりづらい・・

「なんなんすかね、これ。Developerに使ってもらう気あるのかね。Getting Startedは何も考えずにスタートできるようにしようよ?」という気持ちがふつふつと沸きはじめ、このあたりから「開発用ドキュメントが辛いから開発チームにガンガンPull Request送ろう!」とメラメラ興奮しはじめました。

3.Skype開発のために必要なことの整理

僕のほうではガチャガチャ操作をして、実際にサンプル動作させることは成功したので、現状必要なことをまとめます。

Skypeの種類の確認

Skypeというブランドには2つの製品があります。個人向けのSkypeと企業向けのSkype for Businessです。そして、現時点(2016年7/23)でSkype Web SDKが対象にしているのはビジネス用途のSkype for Businessです。

開発前の準備で必要なこと

Skype Web SDK開発には以下の3つが大枠必要です。

  1. Azure AD (認証基盤)
  2. Office 365 開発者アカウント
  3. WebサーバーとWebアプリ

1は認証/認可用に使います。認証・認可周りを任せられるのはうれしい。このあたりはfacebook開発と似ています。

2はSkype for BusinessをはじめとしたOffice関連のクラウドサービスです。API呼び出し先が必要なので、用意が必要です。こいつを用意するとチャットも音声通話もうまいことやってくれるので、自分でチャット基盤(アプリ/インフラ)用意しなくていいのは最高!

3がないとアプリ作れないので、これは必須です。

アカウント作成方法とかは今後のブログで解説します。基本無償なので、始める分には敷居が低いです。

4.作りたいものの妄想

さて、ちょっと話をそらします。僕がプログラミングつらい時には「筋トレみたいなものだ」と思うようにしていて、そのあたりをシェアします。多少話を端折るので論理的飛躍があるのはご了承くだされ。

僕は今トレーニングにはまっていて、8月にはトライアスロンの大会に出ようと思っています。 トレーニングのきっかけは、友達の奥さんに「シュレックみたいな体していますねw」と言われたことに始まります。 https://images-na.ssl-images-amazon.com/images/I/5152QKZZB1L.jpg

えぇ、盛大に腹が出ていました。。そして、悔しい思いをしました。

悔しいのでジムに通い始めましたが、つらい。「なんなんすかね、これ。」とやめたい気持ちになりました。どうにかモチベーションを上げるために始めたのが「妄想」です。

海外の同僚の姿を思い浮かべると、胸板がっちりで腕が太いので、Tシャツ+ジーンズという適当な格好でも超かっこいいです。つらい度に「ああなったらモテるだろうなぁ」と妄想し、モチベーションの維持には成功しました。現状2kmくらい泳げますし、時速14kmくらいで走れるし、90kgくらいのベンチプレスもできるようになりました。

何が言いたいかというと「開発も筋トレと一緒で、辛くなったら将来の輝かしい姿を妄想して乗り越えよう!」ということです。僕は皆さんがつらくならないようにSkypeチームにpull requestを送りますが、もし、一緒のタイミングで開発を始めた人でつらくなった人は、ぜひ、妄想をしてみてください。Skype SDKでできることはすごいし絶対面白いですから!

ちなみに僕の今の妄想は「英会話アプリにSkype SDKを組み込む」というものです。僕が毎日お世話になっているDMM英会話はいい感じの英会話アプリです。ヨーロッパ、アフリカ、アジア、北米・南米など色々な国の人と話す練習ができます。ただ、Web画面で予約をして、Skypeアプリで授業を受けているので、ちょい面倒です(ほかの英会話アプリも同じ感じです)。これを予約もSkype通話もWebでできたら便利だよなぁと思っています。色々わかってきたら提案もしに行ってみたいw なんか楽しくなってきました。これでドキュメントは乗り切れます!

5.次回以降の構成紹介

次回以降はだいたいこんな感じで進めます。

  1. Skype開発大枠解説 + 必要な準備解説
  2. Login周りのコードの解説(javascript)
  3. Skype SDKでのログインの解説
  4. Skype SDKでのAPI Callの解説(javascript)

なお、基本的に英会話アプリを作るための前提で進めます。題材ないとブログつまらなくなるので。 ではでは、引き続きよろしくお願いします~!