Création et lecture de contacts Outlook.com

Récupérez votre compte ici

Cette rubrique décrit comment vos applications peuvent utiliser les API Live Connect pour créer et lire les contacts d’un utilisateur Outlook.com dans les langages suivants :

Pour que votre application puisse lire les contacts d’un utilisateur, l’étendue wl.basic doit lui avoir été accordée par l’utilisateur. Pour ajouter un nouveau contact dans la liste de contacts d’un utilisateur, l’étendue wl.contacts_create est requise. Pour plus d’informations sur la demande de l’étendue requise à partir de votre application, voir Obtention du consentement de l’utilisateur.

Pour tirer pleinement parti des exemples de code de cette rubrique, vous pouvez les utiliser dans le contexte d’exemples de référence de code plus vastes que nous fournissons dans Utilisation des exemples de code.

Spécification d’un ID de contact

L’ID de contact affiché dans ces exemples de code est fictif et ne fonctionnera pas avec votre application. Dans votre application, vous devrez utiliser un ID de contact valide. Voici quelques exemples de méthodes pour obtenir des ID de contacts à utiliser dans le paramètre de chemin d’accès :

  • Utiliser l’ID de contact d’un contact.
  • Obtenez des informations sur les contacts et les amis de l’utilisateur connecté en spécifiant me comme ID utilisateur, comme dans :
    • me/contacts pour obtenir des informations sur tous les contacts de l’utilisateur connecté.
    • me/friends pour obtenir des informations sur tous les amis de l’utilisateur connecté.

      Remarque  Un ami est un autre utilisateur Outlook.com qu’un utilisateur a invité comme ami et qui a accepté sa demande. Un ami est un contact qui a sa structure is_friend définie à true. (Vous ne pouvez pas définir la structure is_friend par programme.)

  • Si vous avez l’ID utilisateur de quelqu’un, vous pouvez obtenir des informations sur ses contacts et amis en utilisant l’ID utilisateur à la place de USER_ID, comme indiqué dans les exemples suivants :
    • USER_ID/contacts pour obtenir des informations sur toutes les entrées de contacts de l’utilisateur représenté par USER_ID.
    • USER_ID/friends pour obtenir des informations sur toutes les entrées d’amis de l’utilisateur représenté par USER_ID.

Vous pouvez également utiliser l’argument d’ID de contact pour filtrer les résultats renvoyés dans une collection. Par exemple :

  • Obtenez un nombre limité d’entrées de contact ou d’ami en utilisant le paramètre limit dans le code précédent pour spécifier le nombre d’entrées à obtenir. Par exemple, pour obtenir les deux premières entrées de contact de l’utilisateur connecté, utilisez me/contacts?limit=2.
  • Spécifiez l’entrée de contact ou d’ami à obtenir en premier en utilisant le paramètre offset dans le code précédent pour spécifier l’index de la première entrée à obtenir. Par exemple, pour obtenir deux entrées de contact pour l’utilisateur connecté, en partant de la troisième entrée de contact, utilisez me/contacts?limit=2&offset=3.

    Remarque  Dans l’objet au format JSON (JavaScript Object Notation) qui est renvoyé, vous pouvez rechercher dans l’objet paging les structures previous et next afin d’obtenir la valeur des paramètres offset et limit des entrées précédente et suivante.

Lecture et écriture de contacts en JavaScript et HTML pour les applications du Windows Store

Lecture de contacts en JavaScript

Remarque  Cet exemple de code utilise un ID de contact fictif dans l’argument de chemin d’accès. Vous devrez remplacer la valeur dans l’exemple par un ID de contact valide.


function readContact_onClick() {
    WL.login({
        scope: "wl.basic"
    }).then(
        function (response) {
            WL.api({
                path: "contact.83960a61000000000000000000000000",
                method: "GET"
            }).then(
                function (response) {
                    document.getElementById("resultDiv").innerHTML =
                        "ID: " + response.id +
                        "<br/>Name: " + response.first_name +
                        " " + response.last_name;
                },
                function (responseFailed) {
                    document.getElementById("infoArea").innerText =
                        "Error calling API: " + responseFailed.error.message;
                }
            );
        },
        function (responseFailed) {
            document.getElementById("infoArea").innerText =
                "Error signing in: " + responseFailed.error_description;
        }
    );
}


Écriture de contacts en JavaScript


function createContact_onClick() {
    WL.login({
        scope: "wl.contacts_create"
    }).then(
        function (response) {
            WL.api({
                path: "me/contacts",
                method: "POST",
                body: {
                    first_name: "William",
                    last_name: "Flash"
                }
            }).then(
                function (response) {
                    document.getElementById("resultDiv").innerHTML =
                        "ID: " + response.id +
                        "<br/> Name: " + response.first_name +
                        " " + response.last_name;
                }, 
                function (responseFailed) {
                    document.getElementById("infoArea").innerText =
                        "Error calling API: " + responseFailed.error.message;
                }
            );
        }, 
        function (responseFailed) {
            document.getElementById("infoArea").innerText =
                "Error signing in: " + responseFailed.error_description;
        }
    );
}


Haut

Lecture et écriture de contacts en C# pour applications du Windows Store et applications Windows Phone

Lecture de contacts en C#

Remarque  Cet exemple de code utilise un ID de contact fictif dans l’appel à GetAsync. Vous devrez remplacer la valeur dans l’exemple par un ID de contact valide.


private async void btnReadContact_Click(object sender, RoutedEventArgs e)
{
    try
    {
        LiveConnectClient liveClient = new LiveConnectClient(this.session);
        LiveOperationResult operationResult =
            await liveClient.GetAsync("contact.b4466224b2ca42798c3d4ea90c75aa56");
        dynamic result = operationResult.Result;
        this.infoTextBlock.Text = "Contact: " + result.name;
    }
    catch (LiveConnectException exception)
    {
        this.infoTextBlock.Text = "Error getting contact info: " + exception.Message;
    }
}


Écriture de contacts en C#


private async void btnCreateContact_Click(object sender, RoutedEventArgs e)
{
    try
    {
        var contact = new Dictionary<string, object>();
        contact.Add("first_name", "Roberto");
        contact.Add("last_name", "Tamburello");
        LiveConnectClient liveClient = new LiveConnectClient(this.session);
        LiveOperationResult operationResult = await liveClient.PostAsync("me/contacts", contact);
        dynamic result = operationResult.Result;
        this.infoTextBlock.Text = string.Join(" ", "Contact:", result.name, "ID:", result.id);
    }
    catch (LiveConnectException exception)
    {
        this.infoTextBlock.Text = "Error creating contact: " + exception.Message;
    }
}


Haut

Lecture et écriture de contacts en Objective-C pour iOS

Lecture de contacts en Objective-C

Remarque  Cet exemple de code utilise un ID de contact fictif dans l’appel à getWithPath:delegate:. Vous devrez remplacer la valeur dans l’exemple par un ID de contact valide.


-(void) getContact
{
    [self.liveClient getWithPath:@"contact.f347aa9f000000000000000000000000" 
                        delegate:self];
}

-(void) liveOperationSucceeded:(LiveOperation *)operation
{
    NSString *firstName = [operation.result objectForKey:@"first_name"];
    NSString *lastName = [operation.result objectForKey:@"last_name"];
    NSString *gender = [operation.result objectForKey:@"gender"];
    self.displayLabel.text = [NSString stringWithFormat:@"Last Name: %@\n First Name: %@\n Gender: %@", lastName, firstName, gender];
}


Écriture de contacts en Objective-C


- (void) createContact
{
    NSString *firstName = firstNameTextField.text;
    NSString *lastName = lastNameTextField.text;
    NSDictionary *postBody = [NSDictionary dictionaryWithObjectsAndKeys:        
                              firstName, @"first_name",
                              lastName, @"last_name", nil];
    [self.liveClient postWithPath:@"me/contacts" 
                         dictBody:postBody 
                         delegate:self 
                        userState:@"create contact"];
}

- (void) liveOperationSucceeded:(LiveOperation *)operation
{
    if ([operation.userState isEqual:@"create contact"]) {
        NSString *contactId = [operation.result objectForKey:@"id"];
        NSString *firstName = [operation.result objectForKey:@"first_name"];
        NSString *lastName = [operation.result objectForKey:@"last_name"];
        self.statusLabel.text = [NSString stringWithFormat: @"The contact(id: %@, first_name: %@, last_name: %@) was created.", contactId, firstName, lastName];
    }    
}

- (void) liveOperationFailed:(NSError *)error 
                   operation:(LiveOperation *)operation
{
    if ([operation.userState isEqual:@"create contact"]) {
        self.statusLabel.text = @"The contact creation failed.";
    }     
}


Haut

Lecture et écriture de contacts en Java pour Android

Lecture de contacts en Java

Remarque  Cet exemple de code utilise un ID de contact fictif dans la chaîne contactID. Vous devrez remplacer la valeur dans l’exemple par un ID de contact valide.


public void readContact() {
    final String contactId = "contact.c1678ab4000000000000000000000000";
       final LiveOperationListener opListener = new LiveOperationListener() {
        public void onError(LiveOperationException exception, LiveOperation operation) {
            resultTextView.setText("Error getting contact info: " + exception.getMessage());
        }
        public void onComplete(LiveOperation operation) {
            JSONObject result = operation.getResult();
            resultTextView.setText("Contact's name is " + result.optString("name"));
        }
       };
    auth.login(this, Arrays.asList(new String[] { "wl.basic" }), new LiveAuthListener() {
        public void onAuthError(LiveAuthException exception, Object userState) {
            resultTextView.setText("Error signing in: " + exception.getMessage());
        }
        public void onAuthComplete(LiveStatus status, LiveConnectSession session, Object userState) {
            client.getAsync(contactId, opListener);                    
        }
    });
}


Écriture de contacts en Java


public void createContact() {
    JSONObject contact = new JSONObject();
    try {
        contact.put("first_name", "Roberto");
        contact.put("last_name", "Tamburello");
    } catch (JSONException e) {
        resultTextView.setText("Error building contact: " + e.getMessage());
        return;
    }
    client.postAsync("me/contacts", contact, new LiveOperationListener() {
        public void onComplete(LiveOperation operation) {
            JSONObject result = operation.getResult();
            resultTextView.setText("Contact created. Contact ID = " + result.optString("id") + 
                ", name = " + result.optString("name"));
        }
        public void onError(LiveOperationException exception, LiveOperation operation) {
            resultTextView.setText("Error creating contact: " + exception.getMessage()); 
        }
    });
} 


Dans le code précédent, vous pouvez remplacer me par USER_ID, où USER_ID représente l’ID de l’utilisateur connecté.

Pour obtenir des détails sur les structures requises et facultatives que votre application doit fournir en utilisant POST, consultez la section « Objet Contact » dans Informations de référence REST.

Remarque  Les API Live Connect ne vous permettent pas de créer des entrées d’ami. Toutefois, vous pouvez créer une entrée de contact, puis utiliser l’interface utilisateur  Outlook.com pour inviter ce contact à devenir votre ami.

Haut

Lecture et écriture de contacts avec REST

Lecture de contacts avec REST

Remarque  Cet exemple de code utilise un ID de contact fictif dans le chemin d’accès. Vous devrez remplacer la valeur dans l’exemple par un ID de contact valide.

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

Écriture de contacts avec REST

POST https://apis.live.net/v5.0/me/contacts

Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json

{
    "first_name": "Roberto",
    "last_name": "Tamburello"
}

Haut

 

 

Afficher:
© 2015 Microsoft