Мне, должно быть, не хватает чего-то очевидного. При размещении в бета API https://graph.microsoft.com/beta/invitations (API исх: https://graph.microsoft.io/en-us/docs/api-reference/beta/api/invitation_post), я получаюUnknownError call/beta/invites
{ "ошибка": { "код": "UnknownError", "сообщение" : "", "innerError" : { "запрос-идентификатор": "e41b0eab-c39c-4cf8-9034-341c81fc722c", "дата": "2017-01-14T19: 26: 55" }} }
Вот мой код:
namespace ConsoleApplication1
{
public class Program
{
static void Main(string[] args)
{
GraphClient g = new GraphClient();
Console.WriteLine(g.SendPost(g.authContext, g.credential).Result);
}
}
public class GraphClient
{
public AuthenticationContext authContext;
public ClientCredential credential;
public GraphClient()
{
this.authContext = new AuthenticationContext("https://login.microsoftonline.com/MYTENANT.onmicrosoft.com");
this.credential = new ClientCredential("MYCLIENTID", "MYCLIENTSECRET");
}
public async Task<string> SendPost(AuthenticationContext authContext, ClientCredential credential)
{
AuthenticationResult result = await authContext.AcquireTokenAsync("https://graph.microsoft.com", credential);
HttpClient http = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/beta/invitations");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
request.Content = new StringContent("{\"invitedUserEmailAddress\": \"MYE[email protected]\",\"inviteRedirectUrl\": \"https://MYWEBSITE.COM\"}", Encoding.UTF8, "application/json");
HttpResponseMessage response = await http.SendAsync(request);
return await response.Content.ReadAsStringAsync();
}
}
}
Спасибо! Я могу делать другие/бета-команды просто отлично. Например, GETting https://graph.microsoft.com/beta/users возвращает список пользователей в моем арендаторе, как и ожидалось.
Дана
Вы посылая Content-Type \t заголовка, чтобы сказать это ожидать JSON? Не знаком с этим языком, поэтому не уверен, что request.content устанавливает это вместе с его кодировкой. – bradenkeith
он находится в самом конце строки, которая запускает «request.Content = new StringContent .....» – spalt
Если вы попробуете тот же запрос с помощью Graph Explorer, вы получите ту же ошибку или что-то другое? Также это 500 ошибка? Я попросил кого-то просмотреть журналы трасс, чтобы понять ошибку. –