英文:
Could not list the users in the Office 365 domain with administrator credentials using graph api
问题
我正在尝试列出 Office 365 域中的用户。我正在使用 Graph API。我在 Azure AD 中注册了我的应用程序,并获得了 Directory.Read 权限。我能够获取访问令牌,但是当我尝试发送列出用户的请求时,返回了一个错误:
{"odata.error":{"code":"Request_DataContractVersionMissing","message":{"lang":"en",
"value":"The specified api-version is invalid. The value must exactly match a supported
version."}}}
这是我发送的请求:
apiUrl := "https://graph.windows.net/"
resource := "vstoregrid.com/users"
data := url.Values{}
data.Set("api-version", "2013-04-05")
authbear := "Bearer "
authbear += accessobj.Access_token
u, _ := url.ParseRequestURI(apiUrl)
u.Path = resource
urlStr := fmt.Sprintf("%v", u)
client := &http.Client{}
r, _ := http.NewRequest("GET", urlStr, bytes.NewBufferString(data.Encode()))
r.Header.Add("Content-Type", "application/json")
r.Header.Set("Authorization", authbear)
r.Header.Add("Host", "graph.windows.net")
r.Header.Add("Content-Length", strconv.Itoa(len(data.Encode())))
我按照文档中指定的版本进行了设置。我错在哪里?
英文:
I am trying to list the users in an office 365 domain. I am using the graph API. I registered my application in azure AD with Directory.Read permissions. I am able to retrieve an access token, but when I try to send a request to list the users it returns an error:
{"odata.error":{"code":"Request_DataContractVersionMissing","message":{"lang":"en",
"value":"The specified api-version is invalid. The value must exactly match a supported
version."}}}
This is the request I make:
apiUrl := "https://graph.windows.net/"
resource := "vstoregrid.com/users"
data := url.Values{}
data.Set("api-version", "2013-04-05")
authbear := "Bearer "
authbear += accessobj.Access_token
u, _ := url.ParseRequestURI(apiUrl)
u.Path = resource
urlStr := fmt.Sprintf("%v", u)
client := &http.Client{}
r, _ := http.NewRequest("GET", urlStr, bytes.NewBufferString(data.Encode()))
r.Header.Add("Content-Type", "application/json")
r.Header.Set("Authorization", authbear)
r.Header.Add("Host", "graph.windows.net")
r.Header.Add("Content-Length", strconv.Itoa(len(data.Encode())))
I am using the version as specified in the documentation. Where am I going wrong?
答案1
得分: 1
根据结果中的错误信息所说:
> 指定的 API 版本无效。值必须与支持的版本完全匹配。
您指定的 API 版本为:
data.Set("api-version", "2014-04-05")
"2014-04-05"
不是一个有效的 API 版本。请参阅此处的支持版本列表。
支持的版本有:
"1.5"
"2013-11-08"
"2013-04-05"
很可能您想使用的是 API 版本 "2013-04-05"
:
data.Set("api-version", "2013-04-05")
英文:
As the error message says in the result:
> The specified api-version is invalid. The value must exactly match a supported
version.
You specified api version:
data.Set("api-version", "2014-04-05")
"2014-04-05"
is not a valid api version. See the list of supported versions here.
Supported versions:
"1.5"
"2013-11-08"
"2013-04-05"
Most likely you wanted to use the api version "2013-04-05"
:
data.Set("api-version", "2013-04-05")
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论