[2.0.0-RC13] TransitiveMemberOfRequestBuilder ignoring QueryParameters select

オープン
#1,228 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
38/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
php
領域
api

調査の方向性

TransitiveMemberOfRequestBuilder->get() と queryParameters->select の処理から始め、続いてレスポンスが DirectoryObjectCollectionResponse と Group モデルにどのように値を設定するかを追跡します。生成された URL で要求されたフィールドと、wait(); 後に利用可能なフィールドを比較します。選択したプロパティが一貫して返されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

ToTriage

Upon creating a TransitiveMemberOfRequestBuilder and applying a TransitiveMemberOfRequestBuilderGetRequestConfiguration->queryParameters->select I can see the URL is changed to include the $select fields in odataNextLink. But when I actualy run the query with get($groupsRequestConfig) the additional fields are not returned.

If I take the URL and put it into graph explorer, it returns the fields as requested.

Sample code and var_dump's

<?php

$groupsRequest = $GraphServiceClient->me()->transitiveMemberOf();

$groupsRequestConfig = new TransitiveMemberOfRequestBuilderGetRequestConfiguration();
$groupsRequestConfig->queryParameters = new TransitiveMemberOfRequestBuilderGetQueryParameters();
$groupsRequestConfig->queryParameters->select = [
    'id',
    'samAccountName',
    'displayName',
    'groupTypes',
    'securityEnabled'
];

$groupsResponse = $groupsRequest->get($groupsRequestConfig);    # Http\Promise\FulfilledPromise
$groups = $groupsResponse->wait();  # Microsoft\Graph\Generated\Models\DirectoryObjectCollectionResponse

$myGroups = []
foreach ($groups->getValue() as $g) {
    $myGroups[] = $g->getDisplayName();
}

/*
$groups = object(Microsoft\Graph\Generated\Models\DirectoryObjectCollectionResponse)#302 (1) {
  ["backingStore":"Microsoft\Graph\Generated\Models\BaseCollectionPaginationCountResponse":private]=>
  object(Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore)#298 (4) {
    ["isInitializationCompleted":"Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore":private]=>
    bool(true)
    ["returnOnlyChangedValues":"Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore":private]=>
    bool(false)
    ["store":"Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore":private]=>
    array(3) {
      ["additionalData"]=>
      array(3) {
        [0]=>
        bool(false)
        [1]=>
        array(1) {
          ["@odata.context"]=>
          string(117) "https://graph.microsoft.com/v1.0/$metadata#directoryObjects(id,samAccountName,displayName,groupTypes,securityEnabled)"
        }
        [2]=>
        int(1)
      }
      ["odataNextLink"]=>
      array(2) {
        [0]=>
        bool(false)
        [1]=>
        string(303) "https://graph.microsoft.com/v1.0/me/transitiveMemberOf?$select=id%2csamAccountName%2cdisplayName%2cgroupTypes%2csecurityEnabled&$skiptoken=R..."
      }
      ["value"]=>
      array(3) {
        [0]=>
        bool(false)
        [1]=>
        array(100) {
          [0]=>
          object(Microsoft\Graph\Generated\Models\Group)#194 (1) {
            ["backingStore":"Microsoft\Graph\Generated\Models\Entity":private]=>
            object(Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore)#193 (4) {
              ["isInitializationCompleted":"Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore":private]=>
              bool(true)
              ["returnOnlyChangedValues":"Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore":private]=>
              bool(false)
              ["store":"Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore":private]=>
              array(6) {
                ["additionalData"]=>
                array(3) {
                  [0]=>
                  bool(true)
                  [1]=>
                  array(0) {
                  }
                  [2]=>
                  int(0)
                }
                ["odataType"]=>
                array(2) {
                  [0]=>
                  bool(true)
                  [1]=>
                  string(22) "#microsoft.graph.group"
                }
                ["id"]=>
                array(2) {
                  [0]=>
                  bool(true)
                  [1]=>
                  string(36) "b...4"
                }
                ["displayName"]=>
                array(2) {
                  [0]=>
                  bool(true)
                  [1]=>
                  NULL
                }
...

$g = object(Microsoft\Graph\Generated\Models\Group)#556 (1) {
  ["backingStore":"Microsoft\Graph\Generated\Models\Entity":private]=>
  object(Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore)#555 (4) {
    ["isInitializationCompleted":"Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore":private]=>
    bool(true)
    ["returnOnlyChangedValues":"Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore":private]=>
    bool(false)
    ["store":"Microsoft\Kiota\Abstractions\Store\InMemoryBackingStore":private]=>
    array(6) {
      ["additionalData"]=>
      array(3) {
        [0]=>
        bool(true)
        [1]=>
        array(0) {
        }
        [2]=>
        int(0)
      }
      ["odataType"]=>
      array(2) {
        [0]=>
        bool(true)
        [1]=>
        string(22) "#microsoft.graph.group"
      }
      ["id"]=>
      array(2) {
        [0]=>
        bool(true)
        [1]=>
        string(36) "8...8"
      }
      ["displayName"]=>
      array(2) {
        [0]=>
        bool(true)
        [1]=>
        NULL
      }
....
*/
?>

PS. Please create more documentation, this sdk is a monster for having so little documentation and examples.

主要言語
PHP
スター
669
フォーク
150
平均マージ
15時間 21分
マージ済み PR(30日)
3

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

microsoftgraph/msgraph-sdk-php のほかの issue

microsoftgraph/msgraph-sdk-php の issue をすべて見る

似ている issue

PHP の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。