2017-02-24 2 views
1

Derzeit arbeite ich in der Konsolenanwendung (Visual Studio 2015), um die Gruppenmitgliedsdetails (Mail-ID und Name) abzurufen. Dafür habe ich nach Lots gesucht, um die Microsoft Graphs-Ausgabe in meiner Anwendung zu erhalten. Ich habe eine document gefunden, die besagt, dass ich meine App im Azure-Portal registrieren soll. Aber ich will das nicht machen. Ich versuche, meine Idee zu erreichen.Wie bekomme ich das Microsoft Graph-Ergebnis in meiner Konsolenanwendung?

Ich kann die gewünschte Ausgabe in Graph Explorer bekommen. Wenn ich die gleiche API-URL im Browser verwende, bekomme ich den folgenden Fehler.

{ 
"error": { 
"code": "InvalidAuthenticationToken", 
"message": "Bearer access token is empty.", 
"innerError": { 
"request-id": "823434fb-a2cc-44a7-9bb7-1249c02f54a5", 
"date": "2017-02-24T09:45:05" 
    } 
    } 
} 

Zum Beispiel, wenn ich die folgende URL im Graph Explorer Eingabefeld verwende, bekomme ich meine gewünschte Ausgabe. Aber wenn ich dieselbe URL in der Browser-URL-Box verwende, erhalte ich den Fehler.

https://graph.microsoft.com/v1.0/groups/922345b-4sc6-443c-ac69-02bh73536570/members? $ Top = 900 & $ select = id, display

Ist das Graph-Explorer-URL im normalen Browser funktioniert oder nicht? Wenn ja, wie könnte ich das machen?

aktualisiert

I unter Verwendung des folgenden Code

 string URL = "https://graph.microsoft.com/v1.0/groups/922345b-4sc6-443c-ac69-02bh73536570/members?$top=900&$select=id,displayName"; 
     System.Net.Http.HttpClient client = new System.Net.Http.HttpClient(); 
     client.BaseAddress = new System.Uri(URL); 
     byte[] cred = UTF8Encoding.UTF8.GetBytes("[email protected]:mypassword"); 
     client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(cred)); 
     client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); 
     HttpResponseMessage messge = client.GetAsync(URL).Result; 
     string result = messge.Content.ReadAsStringAsync().Result; 

Aber ich habe die unten stehende Ausgabe in string result

{ 
"error": { 
"code": "InvalidAuthenticationToken", 
"message": "CompactToken parsing failed with error code: -2147184105", 
"innerError": { 
    "request-id": "8gd6720-d558-4bbd-a0b8-fd098gw30f0b", 
    "date": "2017-02-24T11:03:34" 
    } 
} 
} 

Gibt es eine andere Möglichkeit, die Ausgabe zu erhalten versucht oder Haben Sie einen Fehler gemacht?

Antwort

2

Sie müssen die Anwendung in AAD registrieren und ein Bearer-Token abrufen - die Grafik-API unterstützt keine Standardauthentifizierung, was Ihr Code tut. Das Dokument, das Sie verknüpft haben, führt Sie durch den Prozess.

+0

Ich habe mein Konto in AAD registriert. Aber ich weiß nicht, wie Sie auf die Gruppen zugreifen, indem Sie –

+1

codieren. Sehen Sie sich dieses Beispiel an: https://github.com/Azure-Samples/active-directory-dotnet-grafapi-console. Es ist eine Konsolen-App, die sich mit dem Graphen verbindet, um Daten zu erhalten. Lesen Sie Schritt 3 in der Readme-Datei, um eine App-Registrierung zu Azure AD hinzuzufügen –

Verwandte Themen