Office 365 Outlook REST API(バージョン2)を使用して、特定のメールボックスへのOutlookの購読を管理するWebアプリケーションがあります。サンプルを使用してトークンを取得し、認証コードフローを使用してAPIを正常に呼び出すことができました。Outlook REST API:AZURE AD認証を使用してAPIを呼び出そうとしています
今、私はクライアントの資格フローを使用し、Azure AD認証を使用して代理人権限でトークンを取得したいと考えています(私は、Office 365交換の下でアプリケーションに可能なすべての委任権限を与えました)。私がここに見たのと同じです:Get Office 365 API access token without user interaction
私は私のアプリケーションを登録し、テナントID、クライアントID &の秘密を取得しました。私はトークンを手に入れることができましたが、私がそれを使ってみると、私は401を手に入れました。ここで
は私がトークンを取得しています方法は次のとおりです。
AuthenticationContext authContext = new AuthenticationContext($"{authority}{tenantId}");
clientCredential = new ClientCredential(client_Id, secret);
authResult = await authContext.AcquireTokenAsync(resource, clientCredential);
authResult.AccessToken;
そして、ここでは、(このコードでシャープなRESTを使用してサブスクリプションを削除しようとしている)私はAPIを使用しようとしている方法は次のとおりです。
var token = await GetOtherToken(account);
rc = new RestClient("https://outlook.office.com/api/v2.0");
rc.AddDefaultHeader("Authorization", $"Bearer {token}");
request = new RestRequest($"me/subscriptions('{restSubId}')", Method.DELETE);
request.AddHeader("Content-Length", "0");
request.AddHeader("Content-Type", "multipart/form-data");
このように見えません。してください、誰か、いくつかの知識を落としてください。読んでくれてありがとう。
私を助けてくれてありがとう。 UIの操作なしにデリゲート権限を活用する方法はありますか? 私は電子メールを投稿したくなかったので、_me_を使用しました。 APIがユーザーのメールを使用することになっていることを理解していますか?例:[email protected]? –
[リソース所有者のフロー](https://blogs.msdn.microsoft.com/wushuai/2016/09/25/resource-owner-password-credentials-grant-in-azure-ad-oauth/)を使用すると、クライアント資格フローを使用している場合は、電子メールを渡すことで特別なユーザー情報を照会することができます。 –
ありがとう、私は両方を試みるつもりです。リソースの所有者の流れは十分にシンプルに見えますが、(サービス/デーモンアプリケーションを構築するために)私に渡したリンクに固執しています。 –