Come stabilire l'età di un utente

Questo argomento descrive in che modo ottenere l'età di un utente, se quest'ultimo sceglie di archiviare tali informazioni nei servizi Live. L'esempio illustrato disabilita un controllo per gli acquisti finché l'app non riesce a verificare che l'utente connesso abbia almeno 18 anni.

Quando l'app interagisce con l'utente, esistono delle informazioni di importanza critica per assicurare di fornire all'utente l'esperienza corretta. Conoscere l'età di un utente è un ottimo esempio, soprattutto se le app consentono azioni quali acquisti in-app per supporti soggetti a restrizioni di età.

Si suppone che l'app abbia già inizializzato le API Live Connect, che l'utente abbia eseguito l'accesso e che abbia fornito il consenso per l'ambito wl.birthday (per il recupero delle informazioni sul compleanno). Per informazioni dettagliate su questi passaggi iniziali, vedi Accesso degli utenti e Come ottenere il consenso dell'utente.

Per sfruttare al massimo gli esempi di codice contenuti in questo argomento, puoi usarli nel contesto degli esempi di codice di riferimento più ampi presentati in Uso degli esempi di codice.

Lavorare con l'età di un utente in JavaScript e HTML per le app di Windows Store

In questo esempio di codice la funzione WL.api richiede informazioni per me, che restituisce le informazioni del profilo dell'utente connesso.

Nelle informazioni restituite da WL.api, response.birth_year contiene l'anno di nascita che l'utente ha memorizzato nel proprio profilo, e che il codice usa per calcolare l'età dell'utente.


function userAge_onClick() {
    WL.login({
        scope: ["wl.signin", "wl.birthday"]
    }).then(
        function (response) {
            WL.api({
                path: "me",
                method: "GET"
            }).then(
                function (response) {
                    if (response.birth_year) {
                        var date = new Date();
                        var year = date.getFullYear();
                        var age = year - response.birth_year;
                        if (age >= 18) {
                            document.getElementById("purchaseButton").disabled = "";
                            document.getElementById("infoArea").innerText =
                                "Age is 18 or older. Purchase button enabled.";
                        }
                        else {
                            document.getElementById("purchaseButton").disabled = "disabled";
                            document.getElementById("infoArea").innerText =
                                "Age is under 18. Purchase button disabled.";
                        }
                    }
                    else {
                        document.getElementById("purchaseButton").disabled = "disabled";
                        document.getElementById("infoArea").innerText =
                            "Cannot determine age. Purchase button disabled.";
                    }
                },
                function (responseFailed) {
                    document.getElementById("infoArea").innerText =
                        "Error calling API: " + responseFailed.error.message;
                }
            );
        },
        function (responseFailed) {
            document.getElementById("infoArea").innerText =
                "Error signing in: " + responseFailed.error_description;
        }
    );
}

function purchaseButton_onClick() {
    document.getElementById("infoArea").innerText =
        "Purchase button clicked."; 
}


Torna all'inizio

Lavorare con l'età di un utente in C# per app di Windows Store e app per Windows Phone

In questo esempio di codice il metodo LiveConnectClient.GetAsync richiede informazioni per me, che restituisce le informazioni del profilo dell'utente connesso. L'età dell'utente è calcolata dall'anno di nascita contenuto nelle informazioni restituite.


private async void btnAge_Click(object sender, RoutedEventArgs e)
{
    try
    {
        LiveConnectClient liveClient = new LiveConnectClient(this.session);
        LiveOperationResult operationResult = await liveClient.GetAsync("me");
        dynamic result = operationResult.Result;
        if (result.birth_year != null)
        {
            DateTime date = DateTime.Now;
            int year = date.Year;
            int age = year - (int)result.birth_year;
            if (age >= 18)
            {
                infoTextBlock.Text = "Age is 18 or older. Purchase button enabled.";
                btnPurchase.IsEnabled = true;
            }
            else
            {
                infoTextBlock.Text = "Age is under 18. Purchase button disabled.";
            }
        }
        else
        {
            infoTextBlock.Text = "Could not determine birth year. Purchase button disabled.";
        }

    }
    catch (LiveConnectException exception)
    {
        infoTextBlock.Text = "Error getting user info: " + exception.Message;
    }
}

private void btnPurchase_Click(object sender, RoutedEventArgs e)
{
    infoTextBlock.Text = "Purchase button clicked.";
}


Torna all'inizio

Lavorare con l'età di un utente in Objective-C for iOS

In questo esempio di codice il metodo LiveConnectClient getWithPath:delegate richiede informazioni per me, che restituisce le informazioni del profilo dell'utente connesso. Il metodo liveOperationSucceeded:operation calcola l'età dell'utente dall'anno di nascita contenuto nelle informazioni restituite, per determinare se il pulsante per l'acquisto debba essere abilitato o meno.


- (void) getAge
{
    [self.liveClient getWithPath:@"me" 
                        delegate:self];
}

- (void) liveOperationSucceeded:(LiveOperation *)operation
{
    NSDate *currentDate = [NSDate date];
    NSCalendar* calendar = [NSCalendar currentCalendar];
    NSDateComponents* dateComponents = [calendar components:NSYearCalendarUnit 
                                                   fromDate:currentDate];
    NSInteger currentYear = [dateComponents year];
    NSInteger usersBirthYear = (int)[operation.result objectForKey:@"birth_year"];
    NSInteger age = currentYear - usersBirthYear; 
    if (age >= 18)
    {
        self.purchaseButton.enabled = YES;
    }
    else
    {
        self.purchaseButton.enabled = NO;
    }
}


Torna all'inizio

Lavorare con l'età di un utente in Java per Android

In questo esempio di codice il metodo LiveConnectClient.getAsync richiede informazioni per me, che restituisce le informazioni del profilo dell'utente connesso. Il metodo personalizzato updateRestrictedButton calcola l'età dell'utente dall'anno di nascita contenuto nelle informazioni restituite, per determinare se il pulsante per l'acquisto debba essere abilitato o meno.


public void getUserAge() {
    client.getAsync("me", new LiveOperationListener() {
        public void onError(LiveOperationException exception, LiveOperation operation) {
            resultTextView.setText("Error getting user info: " + exception.getMessage());
        }
        public void onComplete(LiveOperation operation) {
            JSONObject result = operation.getResult();
            updateRestrictedButton(result);
        }
    });
}

private void updateRestrictedButton(JSONObject user) {
    boolean enable = false;
    if (user != null) {
        int birthYear = user.optInt("birth_year");
        if (birthYear > 0) {
            int year = new Date().getYear();
            int age = year - birthYear;
            if (age >= 18) {
                enable = true;
            }
        }
    }
    if (enable == true) {
        resultTextView.setText("Purchase button enabled.");
    }
    else {
        resultTextView.setText("Purchase button disabled.");
    }
}


Torna all'inizio

Lavorare con l'età di un utente usando REST

Dopo aver effettuato la chiamata GET appropriata in REST (Representational State Transfer), le informazioni dell'utente vengono incluse nella risposta. La risposta viene restituita nel formato JSON (JavaScript Object Notation), che puoi analizzare per ottenere le singole strutture al suo interno. Ecco come eseguire una chiamata GET in cui l'utente che ha eseguito l'accesso è rappresentato come me.

GET https://apis.live.net/v5.0/me?access_token=ACCESS_TOKEN

Ecco l'aspetto delle informazioni in formato JSON restituite per un utente fittizio.

{
  "first_name" : "Luka",
  "last_name" : "Abrus",
  "birth_month" : 6,
  "birth_date" : 26,
  "birth_year" : 1968
}

Torna all'inizio

Passaggi successivi

Questo argomento illustra come usare l'ambito wl.birthday per ottenere l'anno di nascita di un utente e stabilire se è sufficientemente adulto per effettuare un determinato tipo di acquisto tramite l'app. Ulteriori informazioni su:

Torna all'inizio

 

 

Mostra:
© 2015 Microsoft