Hantera kontakter

Quick start

Använd exemplet nedan och byt ut “API_NYCKEL” mot en bearer token som du skapar i användarportalen.

curl -X GET "https://api.ip1sms.com/v2/contacts/" \
-H "Authorization: Bearer API_NYCKEL" \
-H "Content-Type: application/json" \

Anrop

Läs en samling av kontakter

Endpoint: contacts

Metod: GET

Denna endpoint ger dig en samling kontakter för vilka du kan se definitionen av kontaktdokumentet nedan.

Exempel på anrop

https://api.ip1sms.com/batches/contacts

Exempel på anrop med filter

Denna samling kan även filtreras efter egenskaper, metadata och/eller etiketter med hjälp av frågeparametrar. Metadata finns bara om meta läggs till som en query-parameter.

https://api.ip1sms.com/v2/contacts?labels=Coworker&properties%5BphoneNumber%5D=%2B46123456789&metadata%5BphoneNumber.isBlocked%5D=false

Läs en enskild kontakt

Endpoint: contacts/{contactId}

Metod: GET

Denna endpoint ger dig en enda specifik kontakt. Metadata finns bara om “meta” läggs till som en query parameter

Exempel på anrop

https://api.ip1sms.com/batches/contacts/606312a5d233ab8484e18404

Uppdatera en kontakt

Endpoint: PATCH contacts/{contactId}
Endpoint: PUT contacts/{contactId}

Med dessa endpoints kan du uppdatera en kontakt och ändra lagrad data. Genom att använda HTTP-verbet PATCH gör du en delvis uppdatering, anger eventuella värden som finns och tar bort alla tydliga null-värden om null-värden existerar. Om du använder PUT ersätts all existerande data med nya data oavsett tidigare värden.

Lägg till/importera kontakter

Endpoint: POST contacts

Denna endpoint låter dig lägga till/importera nya kontakter. Den tar en samling kontaktdokument. Som standard accepteras kontakterna och importeras sedan i bakgrunden, men det kan göras direkt genom att lägga till sync som en frågeparameter. Direktimport rekommenderas endast för små samlingar av kontakter (färre än 1000).

Radera kontakter

Endpoint: DELETE contacts/{contactId}

Denna endpoint låter dig ta bort en kontakt. Det finns också en endpoint för att ta bort mer än en kontakt, se avsnittet för Massoperationer.

Responsdata-typ

{
  "id": "606312a5d233ab8484e18404",
  "ownerId": "ip1-XXXXX",
  "properties": {
    "phoneNumber": "+46123456789",
    "email": "icarus@example.com",
    "firstName": "Icarus",
    "lastName": "Sol",
    "department": "Sales"
  },
  "metadata": {
    "phoneNumber": {
      "isPossiblePhoneNumber": "true",
      "isValidPhoneNumber": "true",
      "phoneNumberType": "MOBILE",
      "parsedMSISDN": "46123456789",
      "isBlocked": "false"
    }
  },
  "labels": [
    "Coworker",
    "all"
  ]
}

id

Kontaktens ID, används för att referera till en specifik kontakt.

ownerId

Kontot som äger kontakten.

properties

En dictionary av kontaktegenskaper, som telefonnunner, namn, företagsuppgifter m.m.

metadata

Metadata om vissa egenskaper. En dictionary med metadata-egenskaper för varje egenskap med metadata. Saker som valideringsresultat och blockerad status.

labels

En samling etiketter för kontakten. Används oftast för att kategorisera eller gruppera kontakter.

Kodexempel

Nedan hittar du ett enkelt kodexempel med autentisering och funktionalitet för att lägga till en kontakt.

Lägg till en kontakt i C#

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri(https://api.ip1sms.com/v2);
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "API Key");

    var contact = new Contact()
    {
        properties = new Dictionary() {
            { "phoneNumber", "46712345678"},
            {"email" , icarus@example.com},
            {"firstName" , "Icarus"},
            {"lastName" , "Sol"},
            {"department" , "Sales"}
        },
        labels = new List() 
        { 
            "Coworker",
            "Sales"
        }
    };

    HttpResponseMessage response = await client.PostAsJsonAsync("contacts", contact);

    if (response.IsSuccessStatusCode)
    {
        Console.WriteLine("Sent");
    }
    else
    {
        Console.WriteLine("Failed, " + response.StatusCode + ": " + await response.Content.ReadAsStringAsync());
    }
}
    
public class Contact
{
    public Dictionary properties { get; set; }
    public List labels { get; set; }
}