一般的な AD アカウントからオンラインで Skype for Business を介してユーザーに通知/リマインダーを送信できる C# コンソール アプリをセットアップしようとしています。先日、このページによると、UCWA がオンラインの Skype for Business でサポートされるようになったことを見て興奮しました: https://msdn.microsoft.com/en-us/library/office/mt650889.aspx .
このチュートリアルに従って、このセットアップを取得しようとしています: https://msdn.microsoft.com/en-us/library/office/mt590891(v=office.16).aspx。これまでのところ、あまり運が良くありませんでした... Azure AD でアプリケーションをセットアップしましたが、その記事の「暗黙的な許可フローを使用してアクセス トークンを要求する」手順で行き詰まりました (100% 確信が持てるわけではありません)。その前に正しい行動を取るかのいずれか)...これまでのところ、私はこれを持っています:
string clientId = "xxxxxxxx"
string resourceUri = "https://webdir.online.lync.com";
string authorityUri = "https://login.windows.net/common/oauth2/authorize";
AuthenticationContext authContext = new AuthenticationContext(authorityUri);
UserCredential cred = new UserCredential("username", "password");
string token = authContext.AcquireToken(resourceUri, clientId, cred).AccessToken;
var poolReq = CreateRequest("https://webdir.online.lync.com/autodiscover/autodiscoverservice.svc/root", "GET",token);
var poolResp = GetResponse(poolReq);
dynamic tmp = JsonConvert.DeserializeObject(poolResp);
string resourcePool = tmp._links.user.href;
Console.WriteLine(resourcePool);
var accessTokenReq = CreateRequest("https://login.windows.net/common/oauth2/authorize"
+ "?response_type=id_token"
+ "&client_id=" + clientId
+ "&redirect_uri=https://login.live.com/oauth20_desktop.srf"
+ "&state=" + Guid.NewGuid().ToString()
+ "&resource=" + new Uri(resourcePool).Host.ToString()
, "GET",token);
var accessTokenResp = GetResponse(accessTokenReq);
私の GetResponse および CreateRequest メソッド:
public static string GetResponse(HttpWebRequest request)
{
string response = string.Empty;
using (HttpWebResponse httpResponse = request.GetResponse() as System.Net.HttpWebResponse)
{
//Get StreamReader that holds the response stream
using (StreamReader reader = new System.IO.StreamReader(httpResponse.GetResponseStream()))
{
response = reader.ReadToEnd();
}
}
return response;
}
public static HttpWebRequest CreateRequest(string uri, string method, string accessToken)
{
HttpWebRequest request = System.Net.WebRequest.Create(uri) as System.Net.HttpWebRequest;
request.KeepAlive = true;
request.Method = method;
request.ContentLength = 0;
request.ContentType = "application/json";
request.Headers.Add("Authorization", String.Format("Bearer {0}", accessToken));
return request;
}
accessTokenResp はオフィスのオンライン ログオン ページであり、先に進むために必要なアクセス トークンではありません。上記のコードのかなりのバリエーションを試しました。
より多くの例を求めてネットを探し回っていますが、特に Office 365 の UCWA サポートが非常に新しいため、実際には何も見つかりません。誰かが私がやろうとしていることを実行する方法の例を持っているか、または私にそれを指摘することができますか? 私がこれまでに見つけたものはすべて、私が試みているものに近いものではありませんでした. 残念ながら、Skype for Business クライアント SDK も使用できません。要件をすべて満たしていないからです。