Ir ao contido

Client-key

O client-key é un token especial que é necesario para a maioría das peticións do API de PhotoILike. A idea é que cada usuario final dispoña dun client-key único.

O recurso client-key require de varias peticións que se detallan a continuación.

Creación de client-key

Warning

PhotoILike non almacena os tokens dos client-keys. É importante que se almacenen de maneira segura porque PhotoILike non pode obter o token dun client-key que se xerou anteriormente.

Petición

POST https://api.photoilike.com/v2.0/client-key

Cabeceiras

Campos

Clave Valor
Authorization string
Requirido
Token de sesión precedido pola palabra Bearer.

Corpo da solicitude

O corpo da solicitude contén datos coa seguinte estrutura:

Representación JSON

{
    "send": bool,
    "clients": [
        {"name": string, "email": string},
        ...
    ]
}

Campos

Parámetro Información
send bool
Opcional.
Se o campo é certo enviarase ao correo da conta rexistrada de PhotoILike todos os client-keys xerados.
clients array
Requirido.
Array de pares nome-email que identifican o cliente para o que se vai a crear o client-key (a capacidade máxima do array nunha petición é de 20).
clients[item].name string
Requirido.
Nome do cliente ao que se lle quere xerar o client-key.
clients[item].email array
Requirido.
Conta de correo do cliente ao que se lle quere xerar o client-key.

Resposta da solicitude

En caso de éxito, o código de estado HTTP no encabezado da resposta é 200 OK e o corpo da resposta contén un array cos client-keys xerados.

Representación

[
    {
        "id": string,
        "activated": bool,
        "email": string,
        "name": string,
        "secret" string
    },
    ...
]

Campos

Parámetro Información
id string
Identificador co que PhotoILike almacena a información relativa ao client-key.
activated bool
Indica se o client-key está activado para usarse ou non.
name string
Nome do cliente que se usou na petición.
email string
Email do cliente que se usou na petición.
secret string
Token do client-key. Esta información ha de gardarse nun lugar seguro porque PhotoILike non almacena o token xerado facendo imposible recuperalo nin restauralo.

Exemplo de petición

curl --request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer {YOUR.SESSION.TOKEN}" \
--data '{"send": "True", "clients": [{"name": "client1", "email": "client1@example.org"}, {"name": "client2", "email": "client2@example.org"}]}' \
https://api.photoilike.com/v2.0/client-key 
import requests
header = {
    # Add your token session (1)
    'Authorization': 'Bearer YOUR.SESSION.TOKEN'
}
clients = [
    # Set the right values for your clients (2)
    {'name': 'client1', 'email': 'client1@example.org'},
    {'name': 'client2', 'email': 'client2@example.org'}
]
payload = {
    # If send is true an email will be sent to your email account with all the created client-keys
    'send': True,
    'clients': clients
}
endpoint = 'https://api.photoilike.com/v2.0/client-key'
# Make the request
r = requests.post(endpoint, headers=header, json=payload)
# Response in json format
response = r.json()
  1. Asegúrese de substituír YOUR.SESSION.TOKEN por un token de sesión válido
  2. Estableza o valor name e email adecuados para os seus clientes
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

import org.json.JSONArray;
import org.json.JSONObject;

public class ClientKey {

    public static void main(String []args) throws Exception {

        // add your session token (1)
        String bearerToken = String.format("Bearer %s", "YOUR.SESSION.TOKEN");

        // set the right values for your clients (2)
        JSONObject client1 = new JSONObject();
        client1.put("name", "client1");
        client1.put("email", "client1@example.org");

        JSONObject client2 = new JSONObject();
        client2.put("name", "client1");
        client2.put("email", "client1@example.org");

        JSONArray clients = new JSONArray();
        clients.put(client1);
        clients.put(client2);

        JSONObject payload = new JSONObject();
        // if send is true an email will be sent to your email account with all the created client-keys
        payload.put("send", true);
        payload.put("clients", clients);


        String endpoint = "https://api.photoilike.com/v2.0/client-key";

        // build the request
        HttpURLConnection connection = (HttpURLConnection) new URL(endpoint).openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Authorization", bearerToken);
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setDoOutput(true);

        OutputStream os = connection.getOutputStream();
        byte[] input = payload.toString().getBytes(StandardCharsets.UTF_8);
        os.write(input, 0, input.length);

        // make the request
        BufferedReader br = new BufferedReader(
                new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8)
        );
        StringBuilder response = new StringBuilder();

        for (String responseLine = null; (responseLine = br.readLine()) != null; response.append(responseLine.trim()))
            ;

        // Response in json format
        JSONArray json = new JSONArray(response.toString());
    }
}
  1. Asegúrese de substituír YOUR.SESSION.TOKEN por un token de sesión válido
  2. Estableza o valor name e email adecuados para os seus clientes
<?php

  // Add your token session (1)
  $headers = array(
    'Content-Type:application/json',
    'Authorization: Bearer YOUR.SESSION.TOKEN'
  );

  // Set the right values for your clients (2)
  $clients = array(
    array(
      'name' => 'client1',
      'email' => 'client1@example.org'
    ),
    array(
      'name' => 'client2',
      'email' => 'client2@example.org'
    )
  );

  // If send is true and email will be sent to your email account with all the created client-keys
  $payload = json_encode(array(
    'send' => true,
    'clients' => $clients
  ));

  $endpoint = "https://api.photoilike.com/v2.0/client-key";

  $ch = curl_init($endpoint);
  curl_setopt($ch,  CURLOPT_POSTFIELDS, $payload);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  // Make the request
  $result = curl_exec($ch);

  curl_close($ch);

  // Response in json format    
  $response = json_decode($result);
 ?>
  1. Asegúrese de substituír YOUR.SESSION.TOKEN por un token de sesión válido
  2. Estableza o valor name e email adecuados para os seus clientes

Desactivación de client-key

Info

O estado dun client-key só pode transicionar de activado a desactivado. Isto supón que non se pode activar un client-key que fose desactivado.

Petición

PUT https://api.photoilike.com/v2.0/client-key

Cabeceiras

Campos

Clave Valor
Authorization string
Requirido
Token de sesión precedido pola palabra Bearer.

Corpo da solicitude

O corpo da solicitude contén datos coa seguinte estrutura:

Representación JSON

{
    "id": string
}

Campos

Parámetro Información
id string
Requirido
Identificador co que PhotoILike almacena a información relativa ao client-key.

Resposta da solicitude

En caso de éxito, o código de estado HTTP no encabezado da resposta é 200 OK e o corpo da resposta contén un obxecto co client-key modificado.

Representación JSON

{
    "id": string,
    "activated": bool,
    "email": string,
    "name": string,
    "timestamp": timestamp
}

Campos

Parámetro Información
id string
Identificador co que PhotoILike almacena a información relativa ao client-key.
activated bool
Indica se o client-key está activado para usarse ou non.
name string
Nome do cliente que se usou na petición.
email string
Email do cliente que se usou na petición.
timestamp timestamp
Instante de tempo no que o client-key foi xerado.

Exemplo de petición

curl --request PUT \
--header "Content-Type: application/json" \
--header "Authorization: Bearer {YOUR.SESSION.TOKEN}" \
--data '{"id": "{CLIENT_KEY_ID}"}' \
https://api.photoilike.com/v2.0/client-key 
import requests

header = {
    # Add your token session (1)
    'Authorization': 'Bearer YOUR.SESSION.TOKEN'
}

payload = {
    # Add the id of the client-key to desactivated (2)
    'id': "CLIENT_KEY_ID"
}

endpoint = 'https://api.photoilike.com/v2.0/client-key'

# Make the request
r = requests.put(endpoint, headers=header, json=payload)

# Response in json format
response = r.json()
  1. Asegúrese de substituír YOUR.SESSION.TOKEN por un token de sesión válido
  2. Asegúrese de cambiar CLIENT_KEY_ID por un identificador de client-key válido
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

import org.json.JSONArray;
import org.json.JSONObject;

public class ClientKey {
    public static void main(String []args) throws Exception {
        // add your session token (1)
        String bearerToken = String.format("Bearer %s", "YOUR.SESSION.TOKEN");


        JSONObject payload = new JSONObject();
        // add the id of the client-key to deactivated (2)
        payload.put("id", "CLIENT_KEY_ID");



        String endpoint = "https://api.photoilike.com/v2.0/client-key";

        // build the request
        HttpURLConnection connection = (HttpURLConnection) new URL(endpoint).openConnection();
        connection.setRequestMethod("PUT");
        connection.setRequestProperty("Authorization", bearerToken);
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setDoOutput(true);

        OutputStream os = connection.getOutputStream();
        byte[] input = payload.toString().getBytes(StandardCharsets.UTF_8);
        os.write(input, 0, input.length);

        // make the request
        BufferedReader br = new BufferedReader(
                new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8)
        );
        StringBuilder response = new StringBuilder();

        for (String responseLine = null; (responseLine = br.readLine()) != null; response.append(responseLine.trim()))
            ;

        // Response in json format
        JSONObject json = new JSONObject(response.toString());
    }

}
  1. Asegúrese de substituír YOUR.SESSION.TOKEN por un token de sesión válido
  2. Asegúrese de cambiar CLIENT_KEY_ID por un identificador de client-key válido
<?php

  // Add your token session (1)
  $headers = array(
    'Content-Type:application/json',
    'Authorization: Bearer YOUR.SESSION.TOKEN'
  );

  // Add the id of the client-key to desactivated (2)
  $payload = json_encode(array(
    'id' => 'CLIENT_KEY_ID'
  ));

  $endpoint = "https://api.photoilike.com/v2.0/client-key";

  $ch = curl_init($endpoint);
  curl_setopt($ch,  CURLOPT_POSTFIELDS, $payload);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");

  // Make the request
  $result = curl_exec($ch);

  curl_close($ch);

  // Response in json format
  $response = json_decode($result);
 ?>
  1. Asegúrese de substituír YOUR.SESSION.TOKEN por un token de sesión válido
  2. Asegúrese de cambiar CLIENT_KEY_ID por un identificador de client-key válido

Obtención de client-keys

Petición

GET https://api.photoilike.com/v2.0/client-key

Cabeceiras

Campos

Clave Valor
Authorization string
Requirido
Token de sesión precedido pola palabra Bearer.

Parámetros de consulta

Campos

Clave Valor
page int
Opcional
Número da páxina da que se quere obter os client-keys. Se non se especifica o valor que se usa por defecto é 0.

Resposta da solicitude

En caso de éxito, o código de estado HTTP no encabezado da resposta é 200 OK e o corpo da resposta contén un array cos client-keys.

Representación

[
    {
        "id": string,
        "activated": bool,
        "name": string,
        "email": string,
        "timestamp": timestamp,
        "apiKeyPrefix": string,
    },
    ...
]

Campos

Parámetro Información
id string
Identificador co que PhotoILike almacena a información relativa ao client-key.
activated bool
Indica se o client-key está activado para usarse ou non.
name string
Nome do cliente que se usou na petición.
email string
Email do cliente que se usou na petición.
timestamp timestamp
Instante de tempo no que o client-key foi xerado.
apiKeyPrefix string
Os primeiros caracteres do token do client-key.

Esta petición tamén emprega as cabeceiras para engadir máis información na resposta.

Clave Valor
x-total-count string
Número total de client-keys.
link string
Contén un listado de elementos <link> separados por coma da siguinte forma:
<uri_referencia>; rel="valor", <uri_referencia>; rel="valor"
Os posibles valores no campo rel son: next, prev, first e last.

Exemplo de petición

curl --request GET \
--header "Content-Type: application/json" \
--header "Authorization: Bearer {YOUR.SESSION.TOKEN}" \
https://api.photoilike.com/v2.0/client-key?page={NUM_PAGE}
import requests

header = {
    # Add your token session (1)
    'Authorization': 'Bearer YOUR.SESSION.TOKEN'
}

params = {
    # Add the num page to retrieve it (2)
    "page": 1
}

endpoint = 'https://api.photoilike.com/v2.0/client-key'

# Make the request
r = requests.get(endpoint, headers=header, params=params)

# Response in json format
response = r.json()
  1. Asegúrese de substituír YOUR.SESSION.TOKEN por un token de sesión válido
  2. Estableza en page o número de páxina que desexe obter
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

import org.json.JSONArray;
import org.json.JSONObject;

public class ClientKey {

    public static void main(String []args) throws Exception {
        // add your session token (1)
        String bearerToken = String.format("Bearer %s", "YOUR.SESSION.TOKEN");

        // add the num page to retrieve it (2)
        int page = 1;

        String endpoint = "https://api.photoilike.com/v2.0/client-key?page=" + page;

        // build the request
        HttpURLConnection connection = (HttpURLConnection) new URL(endpoint).openConnection();
        connection.setRequestMethod("GET");
        connection.setRequestProperty("Authorization", bearerToken);

        // make the request
        BufferedReader br = new BufferedReader(
                new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8)
        );
        StringBuilder response = new StringBuilder();

        for (String responseLine = null; (responseLine = br.readLine()) != null; response.append(responseLine.trim()))
            ;

        // Response in json format
        JSONArray json = new JSONArray(response.toString());
    }

}
  1. Asegúrese de substituír YOUR.SESSION.TOKEN por un token de sesión válido
  2. Estableza en page o número de páxina que desexe obter
<?php

  // Add your token session (1)
  $headers = array(
    'Content-Type:application/json',
    'Authorization: Bearer YOUR.SESSION.TOKEN'
  );


  $endpoint = "https://api.photoilike.com/v2.0/client-key";
  // Add the num page to retrieve it (2)
  $endpoint = $endpoint . "?page=1";

  $ch = curl_init($endpoint);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  // Make the request
  $result = curl_exec($ch);

  curl_close($ch);

  // Response in json format
  $response = json_decode($result);
 ?>
  1. Asegúrese de substituír YOUR.SESSION.TOKEN por un token de sesión válido
  2. Estableza en page o número de páxina que desexe obter