2017-11-08 5 views
1

Microsoft Graphへの後続の非効率的な要求を避けるため、個々のユーザーの個人用サイト(OneDrive for Business)に関する情報をコレクション内に含めることができます。

/users?$select=id,mail,mySiteでユーザーコレクションを取得するとき、Microsoft Graph APIはmySiteフィールドを照会できません。この事実はGraph API docsに記載されています。したがって、私たちは、代替を探していた、と出くわした:

GET /users?$expand=drive 

または

GET /users?$expand=drives 

driveは、ユーザーの個人的なドライブに対応し、mySiteと同じフィールドwebUrlを持っているので。

しかし、要求は次のエラーが発生する:

{ 
    "error": { 
     "code": "InternalServerError", 
     "message": "Value cannot be null. Parameter name: source", 
     "innerError": { 
      "request-id": "15d69169-937a-4525-a904-e4107704d8f1", 
      "date": "2017-11-08T02:11:17" 
     } 
    } 
} 

これは有効な文書化の関係です。また、クエリのパラメータ$expandのこの使用がサポートされていないことは文書化されていません。 $expandは現時点ではbeta/usersでしかサポートされていないというメモhereがありますが、これも同じエラーで失敗します。 (上記のように)

エラーの潜在的な原因は、ユーザーがまだ個人的なサイトを作成していない可能性があり、したがって、私たちはそれだけで空のリストを返し、また、次の可能性があると仮定しdrivesを試してみました:

GET /users?$expand=drive&$filter=drive ne null 

これはまた、Filter is not supportedというエラーを返します。そのような$filterは使用できませんが、これは文書化されていません。ドキュメントhere(正確に理解している場合)のように、$expand=drive($select=webUrl;$filter=webUrl ne null)のみがサポートされています。

Office機能候補プラットフォーム、スタックオーバーフロー、およびMicrosoftの技術コミュニティ開発者グループを検索しましたが、成功していませんでした。

ディスカバリAPIはまだありますが、アプリ専用トークンを使用しているため、これは実際にはオプションではありません。さらに、hereのように、Microsoft Graphもそれを置き換えると思われます。

答えて

0

userエンティティからdriveを展開することは、Microsoft Graphではサポートされていません。なぜ、私は説明しようとします。

この動作を理解するには、特定のエンティティがどこから供給されているかを考慮してインポートします。この場合、userはActive Directoryから取得され、driveはSharePointからのソースです。 documentationで述べたよう

Note: Not all relationships and resources support the $expand query parameter. For example, you can expand the directReports , manager , and memberOf relationships on a user, but you cannot expand its events , messages , or photo relationships.

一例を使用して、eventsmessages、またはphotoがExchangeからすべてのソースでありながらdirectReportsmanager、及びmemberOfすべてのADから供給されていることに気付きます。

ドキュメントで説明しようとしているのは(どちらかというと紛らわしいとはいうものの)$expandはサービスの境界を越えることができないということです。その関係があるサービスから別のサービス(すなわち、ExchangeおよびSharePoint)と交差する場合、Microsoft Graphは1回の呼び出しでその境界を越えてナビゲートできません。

これは、さまざまなルールと制約を持つMicrosoft Graphを使用したさまざまなサービスに由来しています。たとえば、ExchangeではOneNoteとは異なるスロットルルールが適用されます。 $expandを介してサービスを渡ると、適用するルールを解決する際に問題が発生します。

これが役に立ちます。

関連する問題