誰かの電子メールにアクセスし、残りの API を使用して誰かに代わって送信する方法はありますか? コード例は役に立ちます。
1 に答える
UserA として認証されているが、UserB に代わってメールを送信するデリゲート シナリオのようなものですか? REST API は現在、そのシナリオをサポートしていません。ただし、アプリはそのユーザーとしてユーザーの電子メールにアクセスできます (ユーザー自身がログインして同意する場合)。クライアント資格情報フローを使用して、組織内のすべてのユーザーに対して組織管理者の同意を得ることもできます。
更新: REST API を介した委任アクセスをサポートするようになりました。そのためには、アプリで新しいパーミッション スコープをリクエストする必要があります。
Azure v2 OAuth2 エンドポイントを使用している場合、これを有効にする新しいスコープがあります。したがって、たとえば、ユーザーのメールに でアクセスするhttps://outlook.office.com/mail.read
場合、代理メールボックスへの同じアクセスを取得するスコープは になりますhttps://outlook.office.com/mail.read.shared
。
Azure v1 OAuth2 エンドポイントを使用している場合は、アプリの登録に設定されているアクセス許可を変更する必要があります。「および共有」を含む新しいアクセス許可が利用可能です。たとえば、ユーザーのメールへの読み取りアクセスを許可する権限は、「ユーザー メールの読み取り」です。代理アクセスの権限は「ユーザーと共有メールの読み取り」です。
アプリに適切なアクセス許可が与えられると、デリゲート データへのアクセスは、ユーザーのデータへのアクセス方法と非常に似ています。/me
大きな違いは、 URL セグメントを使用できないことです。代わりに、デリゲート/users/{user-id}
に設定された を使用する必要があります。user-id
たとえば、bob@example.com の受信トレイにアクセスするには:
GET https://outlook.office.com/api/v2.0/users/bob@example.com/mailFolders/inbox/messages