2016-12-22 11 views
1

注:I originally posed this questionはクライアントライブラリリポジトリにあり、.NETライブラリではなくサービスライブラリの問題であると回答しました。Microsoft Graph Client Libraryでuser.MemberOfにアクセス

var user = await GraphClient.Users[userId].Request().Expand("memberOf").GetAsync();

取得するには、おそらく戻っ「NextPageRequest」オブジェクトを使用する方法に供給し、その結果を:私たちは、ユーザーのグループを取得するには、このような何かをやってきた開発中に

現在のページを超える結果。私たちの偽の開発ユーザーアカウントは、初期のリアルユーザーだけでなく、NextPageRequestロジックを必要とする十分なグループメンバシップを持っていなかったため、そのテストは忘れていました。

20+グループとユーザーを取得した後、それは最終的には上記で詳述したよう要求を行うことはメンバーシップの1ページ分を返しますが、後続のリクエストのオプションで使用するNextPageRequestを返さないことが明らかになりました。コレクションに関する文書は、これがどのように行われるべきかのように思えます。私はあなたが既に知っていると確信しているとして

は、作業を行う方法は、このようなものです:

List<Group> userGroups = await GraphClient.Users[userId].MemberOf.Request().GetAsync().CurrentPage.Where(p => p.GetType() == typeof(Microsoft.Graph.Group)).Cast<Microsoft.Graph.Group>().ToList();

これ

は、限り我々が見てきたように、ユーザーのグループメンバーシップのすべてを返します。 "memberOf"でExpandを使用しないことが意図されている場合は、まったく機能しません。今のところ、古いコードはテナントの800人のユーザーのうち約760人のために正常に機能しました。残りは小切手を書いています:)。 .Expand( "memberOf")を間違って実行していた場合は、教えてください。

また、GetMemberGroupsはMemberOfとは異なる動作をします。意図は何ですか?たぶん、GetMemberGroups(securityEnabledOnly = false, expandGroupInfo = false)のようなことをしている方がはっきりしているかもしれません。

答えて

0

あなたの所見は正しいです。 $ expandはディレクトリではいくらか制限されており、最大20個まで拡張でき、ページネーションはサポートされません。これは他のグラフサービスにとって必ずしも真実ではありません。詳細はhttps://graph.microsoft.io/en-us/docs/overview/query_parametersと$ expandを参照してください。

は残念ながら$拡大のようなもののためにサポートされていないエラーを返すように動作を変更=のmemberOfは破壊の変化に相当するであろう。この変更を新しいバージョンで検討することができます。

我々はまた、サポートされている場所を拡大し、改ページ記述することができるかもしれないグラフのメタデータドキュメントに多くの注釈を追加しようとしています。これは、サービスがサポートできないオプションを表示しないようにクライアントライブラリを制限するのにも役立ちます。

希望すると、

関連する問題