Udostępnij za pośrednictwem


Samouczek: wywoływanie chronionego internetowego interfejsu API w aplikacji systemu Android

Dotyczy: Zielony okrąg z białym znacznikiem wyboru. Najemcy Workforce Zielony okrąg z białym znacznikiem wyboru. Zewnętrzni dzierżawcy (dowiedz się więcej)

Jest to trzeci samouczek z serii samouczków, który przeprowadzi Cię przez proces wywoływania chronionego internetowego interfejsu API przy użyciu identyfikatora zewnętrznego firmy Microsoft.

W tym samouczku nauczysz się następujących rzeczy:

  • Wywołaj chroniony internetowy interfejs API

Warunki wstępne

Wywołaj chroniony internetowy interfejs API

  1. W aplikacji>src>main>java>com.example(nazwa aplikacji). Utwórz następujące fragmenty systemu Android:

    • MSGraphRequestWrapper
  2. Otwórz MSGraphRequestWrapper.java i zastąp kod następującym fragmentem kodu, aby wywołać interfejs API programu Microsoft Graph przy użyciu tokenu dostarczonego przez bibliotekę MSAL:

     package com.azuresamples.msalandroidapp;
    
     import android.content.Context;
     import android.util.Log;
    
     import androidx.annotation.NonNull;
    
     import com.android.volley.DefaultRetryPolicy;
     import com.android.volley.Request;
     import com.android.volley.RequestQueue;
     import com.android.volley.Response;
     import com.android.volley.toolbox.JsonObjectRequest;
     import com.android.volley.toolbox.Volley;
    
     import org.json.JSONObject;
    
     import java.util.HashMap;
     import java.util.Map;
    
     public class MSGraphRequestWrapper {
         private static final String TAG = MSGraphRequestWrapper.class.getSimpleName();
    
         // See: https://docs.microsoft.com/en-us/graph/deployments#microsoft-graph-and-graph-explorer-service-root-endpoints
         public static final String MS_GRAPH_ROOT_ENDPOINT = "https://graph.microsoft.com/";
    
         /**
          * Use Volley to make an HTTP request with
          * 1) a given MSGraph resource URL
          * 2) an access token
          * to obtain MSGraph data.
          **/
         public static void callGraphAPIUsingVolley(@NonNull final Context context,
                                                    @NonNull final String graphResourceUrl,
                                                    @NonNull final String accessToken,
                                                    @NonNull final Response.Listener<JSONObject> responseListener,
                                                    @NonNull final Response.ErrorListener errorListener) {
             Log.d(TAG, "Starting volley request to graph");
    
             /* Make sure we have a token to send to graph */
             if (accessToken == null || accessToken.length() == 0) {
                 return;
             }
    
             RequestQueue queue = Volley.newRequestQueue(context);
             JSONObject parameters = new JSONObject();
    
             try {
                 parameters.put("key", "value");
             } catch (Exception e) {
                 Log.d(TAG, "Failed to put parameters: " + e.toString());
             }
    
             JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, graphResourceUrl,
                     parameters, responseListener, errorListener) {
                 @Override
                 public Map<String, String> getHeaders() {
                     Map<String, String> headers = new HashMap<>();
                     headers.put("Authorization", "Bearer " + accessToken);
                     return headers;
                 }
             };
    
             Log.d(TAG, "Adding HTTP GET to Queue, Request: " + request.toString());
    
             request.setRetryPolicy(new DefaultRetryPolicy(
                     3000,
                     DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                     DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
             queue.add(request);
         }
     }
    

Testowanie aplikacji

Skompiluj i wdróż aplikację na urządzeniu testowym lub emulatorze. Powinno być możliwe zalogowanie się i uzyskanie tokenów dla identyfikatora Entra firmy Microsoft.