C#でMicrosoft Graphを用いるアプリの開発を行っております。
下記リンクのように
ユーザーの代わりにアプリケーションがアクセス許可を取得し
Microsoft Graphからユーザー情報を取得したいと考えております。
手順としては、以下のようなPOST要求でトークンを取得すると書いてあります。
POST /{tenant}/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
client_id=535fb089-9ff3-47b6-9bfb-4f1264799865
&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
&client_secret=qWgdYAmab0YSkuL1qKv5bPX
&grant_type=client_credentials
しかし、webアプリ開発の経験が無く
うまくPOST要求ができず、レスポンスが返ってきません。
このため、C#でPOST要求を行い、レスポンスを受け取るまでの方法を
アドバイスいただけますでしょうか
よろしくお願いいたします。
追記事項
現在実装しているコードを追記致します。
C#
1string url = "https://login.microsoftonline.com/common/oauth2/token"; 2 var nvc = new List<KeyValuePair<string, string>>(); 3 nvc.Add(new KeyValuePair<string, string>("client_id", "3181129a-*******")); 4 nvc.Add(new KeyValuePair<string, string>("scope", "https://graph.microsoft.com/.default")); 5 nvc.Add(new KeyValuePair<string, string>("client_secret", "******************")); 6 nvc.Add(new KeyValuePair<string, string>("grant_type", "client_credentials")); 7 var client = new HttpClient(); 8 var req = new HttpRequestMessage(HttpMethod.Post, url) { Content = new FormUrlEncodedContent(nvc) }; 9 var res = await client.SendAsync(req);
現在、レスポンス自体は返ってきておりますが
以下の様な意図しない形式となっております。
StatusCode: 400,
ReasonPhrase: ‘Bad Request’,
Version: 1.1,
Content: System.Net.Http.StreamContent,
Headers: {
Pragma: no-cache Strict-Transport-Security: max-age=31536000; includeSubDomains X-Content-Type-Options: nosniff x-ms-request-id: 1b5a4e18-428d-4fb5-a611-2e6856ff0800
Cache-Control: no-store, no-cache P3P: CP="DSP CUR OTPi IND OTRi ONL FIN" Set-Cookie: esctx=AQABAAAAAABHh4kmS_aKT5XrjzxRAtHz0bD6HfoCO6c1iY5rcV7Yv34N6jErn-UFuSw5FEUMBsNMZ1UgSZjrKClzkcztzIxzxiTCcny9c5ji8AIqda5wXfECjs6t1IpGT7j6aJRXR4mw8v9uPzAAmExtHnQ5wdMiHULc8XM9oBd8GDpPPs222T5oVYoRFzzljdV0-RdbA0kgAA;
domain=.login.microsoftonline.com; path=/; secure; HttpOnly Set-Cookie: x-ms-gateway-slice=008; path=/; secure; HttpOnly Set-Cookie: stsservicecookie=ests; path=/; secure; HttpOnly Server: Microsoft-IIS/8.5 X-Powered-By: ASP.NET Date: Thu, 26 Oct 2017 05:37:45 GMT Content-Length: 468 Content-Type: application/json; charset=utf-8 Expires: -1
}
回答1件
あなたの回答
tips
プレビュー