2017-06-15 67 views
1

在圖形瀏覽器,當我驗證和使用「得到一個開放的擴展名」的樣品,它確實對這個端點的GET:

https://graph.microsoft.com/v1.0/me?$select=id,displayName,mail,mobilePhone&$expand=extensions 

返回我受夠了「建立一個開放的添加任何擴展擴展名「樣本。但是,如果我刪除$選擇參數,以便端點看起來像這樣...

https://graph.microsoft.com/v1.0/me?$expand=extensions 

...然後我得到一個錯誤,指出「」類型的實體實例值「microsoft.graph.user」 。沒有財產「身份證」的值」看來我需要有一個$選擇參數返回擴展擴展和沒關係的$選擇值是什麼 - 我可以用那並不是一個無意義的字符串「T對應於JSON有效載荷的任何領域,它工作正常。

爲什麼在這種情況下需要$選擇參數?

+1

嘿道格,你能分享無意義的字符串的例子嗎?我絕對可以把無意義的字符串放在select子句中(這是一個bug),但是它需要我明確地將id放在那裏。 –

+1

嘿馬克,下面是用於返回我已經添加到我的用戶節點的擴展工作正常的請求的例子: https://graph.microsoft.com/v1.0/me?$select=fieldnotfound&$expand =擴展 我得到上面,如果我不包括$選擇記錄錯誤,但加入$選擇= fieldnotfound使得它的工作。 –

回答

0

我能有例外複製此的$select=fieldnotfound。我得到了同樣的錯誤返回有或沒有$ select語句。我無法解釋爲什麼你會看到這種行爲,但我可以提供一些有關這裏出現問題的信息。

首先對什麼是在幕後發生的一些背景。

當您撥打/me而沒有附加參數時,會自動使用默認的$select參數。默認情況下,它使用以下:

$select=businessPhones,displayName,givenName,jobTitle,mail,mobilePhone,officeLocation,preferredLanguage,surname,userPrincipalName,id

正如你所看到的,id實際上是在選定的領域之一。理論上,只需添加$expand=extentions即可按預期工作。不幸的是,添加$expand似乎也略微改變了底層$select聲明中的字段。也就是說,它丟棄了id領域:

$select=businessPhones,displayName,givenName,jobTitle,mail,mobilePhone,officeLocation,preferredLanguage,surname,userPrincipalName

如果我使用,但是同時指定,它按預期工作:

https://graph.microsoft.com/v1.0/me?$select=businessPhones,displayName,givenName,jobTitle,mail,mobilePhone,officeLocation,preferredLanguage,surname,userPrincipalName,id&$expand=extensions

我懷疑這是周圍的默認字段中的錯誤選擇,但我會順從那個Graph團隊。上面的查詢應該至少讓你在此期間前進。

相關問題