0

Concur Sandbox を構成し、API をいじってみました。ユーザー API は .Net SDK でサポートされていないため、次のコードを記述しました。

問題は、Expenses のコードは機能しますが (有効な結果で 200 を返します)、ユーザーのコードは 401 Unauthorized を返します。

経費

  using (var httpClient = new HttpClient())
  {
     httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("OAuth", oauthAccessToken);
      httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

      var requestUri = "https://www.concursolutions.com/api/v3.0/expense/receiptimages";
      var respone = await httpClient.GetAsync(requestUri);
      if (respone.IsSuccessStatusCode)
      {
         var result = respone.Content.ReadAsStringAsync();
         //throw new InvalidUriException(string.Format("Invalid uri: {0}", requestUri));
        }
      }

理想的には、これも前のコードが機能するように機能するはずです。ユーザー

  using (var httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("OAuth", oauthAccessToken);
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

                var requestUri = "http://www.concursolutions.com/api/v3.0/common/users?user=user1%40company.net";
                var respone = await httpClient.GetAsync(requestUri);
                if (!respone.IsSuccessStatusCode)
                {
                    //throw new InvalidUriException(string.Format("Invalid uri: {0}", requestUri));
                }
            }
        }

許可の問題だと思いましたが、十分な許可を与えました。

ここでは、[管理] -> [Webservice アプリの構成] を選択します。

概要

アプリケーション構成

4

1 に答える 1