无法使用图形api使用管理员凭据列出Office 365域中的用户

时间:2015-02-25 10:05:40

标签: rest azure go office365

我正在尝试列出Office 365域中的用户。我正在使用图API。我使用Directory.Read权限在azure AD中注册了我的应用程序。我能够检索访问令牌,但当我尝试发送请求列出用户时,它会返回错误:

 {"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())))

我正在使用文档中指定的版本。我哪里错了?

1 个答案:

答案 0 :(得分:1)

正如错误消息在结果中所示:

  

指定的api-version无效。该值必须与支持的值完全匹配      版本

您指定了api版本:

data.Set("api-version", "2014-04-05")

"2014-04-05"不是有效的api版本。请参阅supported versions here列表。

支持的版本:

  • "1.5"
  • "2013-11-08"
  • "2013-04-05"

您很可能想要使用api版本"2013-04-05"

data.Set("api-version", "2013-04-05")