Je tente d'ajouter des membres à un groupe. Je peux lister tous les groupes dans mon organisation, obtenir l'utilisateur par email, obtenir tous les utilisateurs et Je peux même enlever un membre d'un groupe mais je ne peux pas ajouter un - L'erreur retournée est 400 Bad Request
.Graph REST AddMember to Group - Demande incorrecte
Voici la fonction qui est la même signature de la fonction que ceux qui travaillent: (j'ai le accesstoken
, id groupe valide et un identifiant de membre valide)
Je confirme les données du corps semble correct au moins aussi autant que je peux voir à partir du example in the docs.
Je ne sais pas ce que je peux ajouter à rendre les choses plus claires, demander et je vais mettre à jour
public async Task<string> AddGroupMember(string accessToken, string groupId, string memberId)
{
var status = string.Empty;
string endpoint = $"https://graph.microsoft.com/v1.0/groups/{groupId}/members/$ref";
string queryParameter = "";
// pass body data
var keyOdataId = "@odata.id";
var valueODataId = $"https://graph.microsoft.com/v1.0/directoryObjects/{memberId}";
var values = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>(keyOdataId, valueODataId)
};
var body = new FormUrlEncodedContent(values);
try
{
using(var client = new HttpClient())
{
using(var request = new HttpRequestMessage(HttpMethod.Post, endpoint + queryParameter))
{
request.Content = body;
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
using(var response = await client.SendAsync(request))
{
if (response.StatusCode == HttpStatusCode.NoContent)
status = "Member added to Group";
else
status = $"Unable to add Member to Group: {response.StatusCode}";
}
}
}
}
catch (Exception ex)
{
status = $"Error adding Member to Group: {ex.Message}";
}
return status;
}
Merci pour toute aide que tout le monde peut offrir - c'est le dernier appel que je dois faire puis la maison sans
ajoute que la question pour tous ceux qui se soucient de savoir pour l'avenir: corps var = new FormUrl ... code est incorrect , ce qui est nécessaire est une simple chaîne JSON changé à ceci: corps var = new StringContent ("{\" "+ keyOdataId + "\": \ "" + valueODataId + "\"}", l'encodage. UTF8, "application/json"); un peu maladroit mais fonctionne – Tab