2016-06-21 15 views
3

新しいo365 v2 APIへのアクセス権があり、これまでのところうまくいきました。しかし、私は共有インボックスにアクセスするのに問題があります。o365 v2 apiで共有メールボックスにアクセスする

さらに悪いことに、返されるすべてのエラーメッセージがあるように表示されません。

@odata.context = https://outlook.office.com/api/v2.0/$metadata#Me/Messages(Subject,ReceivedDateTime,SentDateTime,Sender,From,ToRecipients,CcRecipients,BccRecipients,ReplyTo,ConversationId,IsRead,InternetMessageId 

[value] = 

誰かがこれを試みていますか?明確にするために

、これは、あなたが共有ボックス内のメッセージの特定のユーザーからのメッセージを要求するために、デリゲートトークンを使用していたようだoutlook.com

答えて

0

交換のためではなく、。

Office 365 REST APIは、アプリケーションレベルのトークンのみをサポートし、組織からのメッセージを取得します。デリゲートトークンは、デリゲートユーザーのメッセージのみを取得できます。

回避策としてEWSを使用して共有ボックスのメッセージを取得することも検討できます。

 string userName = ""; 
     string password = ""; 

     ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1); 
     service.Credentials = new NetworkCredential(userName, password); 

     service.TraceEnabled = true; 
     service.TraceFlags = TraceFlags.All; 

     service.AutodiscoverUrl(userName, RedirectionUrlValidationCallback); 


     FolderId SharedMailbox = new FolderId(WellKnownFolderName.Inbox, "[email protected]"); 
     ItemView itemView = new ItemView(10); 
     var results = service.FindItems(SharedMailbox, itemView); 
     foreach (var item in results) 
     { 
      Console.WriteLine(item.Subject); 
     } 

そして、あなたがこの機能をサポートするために、Office 365のREST APIをしたい場合、あなたはまたhereからのフィードバックを提出することができます:ここでは

はあなたの参照のための一例です。

+0

ありがとうございました。アプリケーションレベルのトークンを要求するように修正しましたか?最初のリクエストに 'prompt = admin_consent'属性を追加する必要がありますか? https://blogs.msdn.microsoft.com/exchangedev/2014/03/25/using-oauth2-to-access-calendar-contact-and-mail-api-in-office-365- exchange-online/ – StormBeast

+0

いいえ。アプリレベルのトークンは、「認証コード許可フロー」の代わりに認証するために「**クライアントID **」と「**クライアント秘密**」を使用する「クライアント認証情報フロー」を使用しています。ユーザーがサインインする必要があります。詳細については、[https://msdn.microsoft.com/en-sg/library/azure/dn645545.aspx](https://msdn.microsoft.com/en-sg/library/azure/dn645545.aspx)を参照してください。 2つの基本認証フロー。 –

+0

ありがとう、これは解決策かもしれないように見えます。もしそうなら、私はそれに応じて質問に答えて閉じます。 – StormBeast

関連する問題