0

RESTapi を使用して、Office 365 アカウントで個人用カレンダーと共有カレンダーの両方を取得しようとしています。現在、Oauth2 は共有カレンダーへのアクセスをサポートしていないため、基本認証でコードをテストしています。

アカウントには 3 つのカレンダーがあります。

  1. user1@domain.com(自分のカレンダー)
  2. user2@domain.com (共有カレンダー)
  3. user3@domain.com (共有カレンダー)

次のエンドポイントを使用して、基本認証を使用してイベントを取得できました。

https://outlook.office365.com/ews/odata/Users ('user1@domain.com')/Events

奇妙な点は、過去 2 日間、同じエンドポイントを使用して user1@domain.com と user2@domain.com のイベントを取得できないことです。イベントにアクセスしようとすると、次のエラーが発生します。

{"@odata.context":" https://outlook.office365.com/ews/odata/ $metadata#Users('user1@domain.com')/Events","value":[{"error": {"code":"ErrorInternalServerError","message":"オブジェクト参照がオブジェクトのインスタンスに設定されていません。"}}

しかし、同じエンドポイントと基本認証を使用して、引き続き user3@domain.com のイベントにアクセスできます。

また、oauth2 を使用して自分のカレンダーにアクセスしようとしました。同様のエラーが発生します

{"value":[{"error":{"code":"ErrorInternalServerError","message":"オブジェクト参照がオブジェクトのインスタンスに設定されていません。"}}

しかし、カレンダーエンドポイントと正常に通信できます

誰かが以前にこのエラーを見たことがあるかどうか疑問に思っていました。ヘルプ/提案は大歓迎です。

4

3 に答える 3

2

基本認証の使用は推奨されておらず、運用環境での使用はサポートされていません。Basic は、現時点では API の探索を容易にするために存在しますが、将来のある時点で非アクティブ化される予定です。

そういえば、OAuth2で自分のカレンダーにアクセスするとエラーになるとおっしゃっていましたが、そうですか?これは断続的な問題のように思えますが、何が起こっているのかを正確に知るには十分な情報がありません。それでも表示される場合は、インストルメンテーション ヘッダーをリクエスト ( 、、 ) に追加し、リクエスト レスポンスのネットワーク トレースを取得するとよいでしょう。User-Agentclient-request-idreturn-client-request-id

于 2015-09-14T12:54:19.523 に答える
0

これは私も混乱しました。Web 上のあらゆるものは Office 365 API の使用を指し示しますが、私を信じてください。それはあなたがやりたいことではありません。Exchange API を使用する必要があります。Office 365 は単なる Exchange サーバーであるため、Exchange サーバーを自動化するのと同じ方法で自動化できます。ここにサンプルコードがあります。とてもシンプルです。

UI なしで Office 365 REST API を使用する

Office 365 API は、ユーザーが Office 365 資格情報を入力し、アプリがユーザーに代わって動作できるようにする UI ベースのアプリを構築するための一連のツールです。

于 2016-09-01T03:47:30.493 に答える