Autenticación de API Atmosphere®

La API Atmosphere® utiliza un token en el encabezado HTTP para autenticar usuarios y solicitudes.

Los tokens se colocan en el encabezado HTTP de la siguiente manera:
Autorización: Portador TOKEN_PROVIDED_BY_INTELEPEER

Adquirir un token

Los tokens se pueden adquirir de dos formas:

  • Ideal para aplicaciones de producción: Por medio de la API Atmosphere®, usando un nombre de usuario y contraseña asignados. El nombre de usuario y contraseña de IntelePeer son sus credenciales de acceso al portal de clientes de IntelePeer.
  • Ideal para adaptarse a la API: Por medio del portal del cliente de IntelePeer.

Adquirir un token por medio del portal del cliente

Navegue a la aplicación SMS bajo Mis aplicaciones.

 

Haga clic en el botón Configuración.

 

Haga clic en CONSEGUIR CLAVE y seleccione el periodo durante el cual le gustaría que la clave sea válida.

 

Se mostrará una clave de API válida, y podrá usarla en las llamadas de API de su cuenta


Adquirir un token por medio de la API

Los tokens que se adquieren directamente por medio de la API Atmosphere® son válidos por 24 horas.

A continuación se describe el proceso recomendado para adquirir y usar los tokens de autenticación en su entorno de producción:

  1. Configuración de la aplicación: Guarde el nombre de usuario y la contraseña de la API Atmosphere® en una ubicación de configuración segura.
  2. Cuando inicie la aplicación: Obtenga el token de la API Atmosphere® usando el nombre de usuario y la contraseña, y almacénelo en la memoria para las posteriores llamadas de API.
  3. En cada llamada de API: Utilice el token que obtuvo anteriormente.
  4. Una vez que expire el token (después de 24 horas o de recibir una respuesta HTTP 401 a la llamada de la API): Obtenga un nuevo token de la API Atmosphere®.

 

URI

POST en https://api.intelepeer.com/sms/v1/authenticate/get_portal_auth_token

 

Parámetros
ParámetroTipo de datosRequeridoDescripción
nombre de usuariostringrequeridoNombre de usuario asignado por IntelePeer
contraseñastringrequeridoContraseña asociada con el nombre de usuario

 

Ejemplo de solicitud
{
    "username": "sms_user",
    "password": "Password123",
}

 

Códigos de respuesta
Código de respuestaDescripción
200Autenticación exitosa. El token se muestra en el cuerpo de la respuesta.
401Se produjo uno de los siguientes errores:

  • No se pueden validar las credenciales
  • Falta un parámetro requerido
  • La cuenta no tiene habilitado el SMS

 

Ejemplo de respuesta
{
    "token": "TOKEN_RETURNED_BY_API_FOR_SUBSEQUENT_CALLS"
}

 

Ejemplo de código

Java

package main.java.authorization;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpHeaders;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;

public class GetToken {
	public static void main(String... args) throws Exception {
		final String url = "https://api.intelepeer.com/sms/v1/authenticate/get_portal_auth_token";
		final String USERNAME = "INSERT_USERNAME";
		final String PASSWORD = "INSERT_PASSWORD";
		
		HttpClient httpclient = HttpClientBuilder.create().build();
		HttpPost httpPost = new HttpPost(url);
        
		// add header
		httpPost.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
        
		// Data to be posted
		List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
		urlParameters.add(new BasicNameValuePair("username", USERNAME));
		urlParameters.add(new BasicNameValuePair("password", PASSWORD));
    	
		// add data to post
		httpPost.setEntity(new UrlEncodedFormEntity(urlParameters));
		
		// execute post
		HttpResponse response = httpclient.execute(httpPost);
        
		// show post results
		System.out.println("\nSending 'POST' request to URL : " + url);
		System.out.println("Post parameters : " + httpPost.getEntity());
		System.out.println("Response Code : " + 
                                    response.getStatusLine().getStatusCode());

		BufferedReader rd = new BufferedReader(
                        new InputStreamReader(response.getEntity().getContent()));

		StringBuffer result = new StringBuffer();
		String line = "";
		while ((line = rd.readLine()) != null) {
			result.append(line);
		}

		System.out.println(result.toString());
    }
}

 

Node.js

const request = require("request");
///////////////////////////////////////////////////////////////////////////////
/// update these accordingly                                                ///
///////////////////////////////////////////////////////////////////////////////
let data = { "username": "INSERT_USERNAME", "password": "INSERT_PASSWORD" }

///////////////////////////////////////////////////////////////////////////////
/// leave these alone                                                       ///
///////////////////////////////////////////////////////////////////////////////
let url  = "https://api.intelepeer.com/sms/v1/authenticate/get_portal_auth_token"
let hdrs = {  'Content-Type': "application/json" }

///////////////////////////////////////////////////////////////////////////////
/// execute the task and parse results                                      ///
///////////////////////////////////////////////////////////////////////////////
request.get({
        url: url,
        headers: hdrs
    },
    (error, response, body) => {                
        let result = JSON.parse(body);
        console.log(result.token);
});

 

PHP

<?php

require '../vendor/autoload.php';
use GuzzleHttp\Client;

###############################################################################
### update these accordingly                                                ###
###############################################################################
$data = ["username" => "INSERT_USERNAME", "password" => "INSERT_PASSWORD" ];

###############################################################################
### leave these alone                                                       ###
###############################################################################
$url  = "https://api.intelepeer.com/sms/v1/authenticate/get_portal_auth_token";
$hdrs = ['Content-Type' => "application/json" ];

###############################################################################
### execute the task and parse results                                      ###
###############################################################################

try{
  $client = new Client();
  $response = $client->post($url, [
    'headers' => $hdrs,
    'json' => $data
    ]);
}
catch (RequestException $e){
  echo "Request Failed:". $e->getMessage();
}

echo $response->getBody();
?>

 

Python

import requests

###############################################################################
### update these accordingly                                                ###
###############################################################################
data = { "username": "INSERT_USERNAME", "password": "INSERT_PASSWORD" }

###############################################################################
### leave these alone                                                       ###
###############################################################################
url  = "https://api.intelepeer.com/sms/v1/authenticate/get_portal_auth_token"
hdrs = {  'Content-Type': "application/json" }

###############################################################################
### execute the task and parse results                                      ###
###############################################################################
response    = requests.post(url, json=data, headers=hdrs)
status_code = response.status_code
text        = response.text
token = None
try:
    token = response.json().get(u'token')
except: pass

print u'{}: {}'.format('OK' if response else 'ERROR', response.text )