LoginSignup
6
2

More than 3 years have passed since last update.

C#でMicrosoft Graph API呼び出し(Botからの使用)

Last updated at Posted at 2017-01-31

動機

Bot FrameworkでOffice365の会議室予約とかをするためにMicrosoft Graph APIを呼び出す必要があった。
実際の開発ではGraph APIライブラリがあるのでそちらを使えばいいが、テストコードを書いていてライブラリの導入をするほどでもなかったので自分で書いてみた。

コード

using (var client = new HttpClient())
{
  var url = "https://graph.microsoft.com/v1.0/me";
  client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
  var response = await client.GetStringAsync(url);
  JObject json = JObject.Parse(response);
  var hogehoge = json.GetValue("hogehoge");

  Console.WriteLine(hogehoge);
}

意外にはまったのがリクエストヘッダーにAuthorizationを追加するときに[Bearer]と実際のaccessTokenの間にスペースを入れる必要があるということ。

!実際にプロダクトに組み込む際はHttpClientをusingで囲って生成と破壊を繰り返してはいけません!
[参考]HttpClientをusingで囲わないでください

AccessTokenの取得

上のコードでAccessTokenも一緒に渡す必要があるので、APIを呼び出す前にAccessTokenを取得する必要がある。
詳しくはここに書いてあるが、Botからの認証方法は何がいいのか検索したところMagic codeを使用したBotからのユーザー認証のページを見つけたのでMagic codeを使おうと思い、さらに検索したところAuthBotというライブラリを見つけたのでこれを使ってAccessTokenを取得した。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2