comunidesk

SDK

Cliente conceptual para consumir el gateway Comunidesk.

Instalación

npm install @comunidesk/sdk

Paquete conceptual: usa los snippets o axios/fetch mientras se publica el cliente.

Uso

Patrón esperado del cliente @comunidesk/sdk

import { Comunidesk } from '@comunidesk/sdk';

const client = new Comunidesk({
  clientId: process.env.CLIENT_ID,
  clientSecret: process.env.CLIENT_SECRET,
  userJwt: process.env.USER_JWT
});

const edificios = await client.rest.list('Edificios');

Snippets

Token OAuth y request REST en varios lenguajes.

import Foundation

let gateway = "https://gateway.comunidesk.com"
let clientId = "CLIENT_ID"
let clientSecret = "CLIENT_SECRET"

var req = URLRequest(url: URL(string: "\(gateway)/oauth/token")!)
req.httpMethod = "POST"
let basic = Data("\(clientId):\(clientSecret)".utf8).base64EncodedString()
req.setValue("Basic \(basic)", forHTTPHeaderField: "Authorization")
req.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
req.httpBody = "grant_type=client_credentials&scope=comunidesk:read%20comunidesk:write"
  .data(using: .utf8)

let (data, _) = try await URLSession.shared.data(for: req)
struct TokenResponse: Decodable { let access_token: String }
let token = try JSONDecoder().decode(TokenResponse.self, from: data).access_token
import Foundation

let oauthToken = "OAUTH_TOKEN"
let userJwt = "USER_JWT"
var req = URLRequest(url: URL(string: "https://gateway.comunidesk.com/v1/rest/Edificios")!)
req.httpMethod = "GET"
req.setValue("Bearer \(oauthToken)", forHTTPHeaderField: "Authorization")
req.setValue("Bearer \(userJwt)", forHTTPHeaderField: "x-comunidesk-user-authorization")
req.setValue("application/json", forHTTPHeaderField: "Accept")

let (data, response) = try await URLSession.shared.data(for: req)
let http = response as! HTTPURLResponse
print(http.statusCode, String(data: data, encoding: .utf8) ?? "")
// scope tipico: comunidesk:read

Portal: developers.comunidesk.com · Gateway: gateway.comunidesk.com