Sari la conținut

Autentificare

O aplicație vă oferă un Client ID și o Secret Key de care aveți nevoie pentru a crea o sesiune OAuth2 autentificată pe care o puteți folosi pentru a comunica cu API-urile Wink și TripPay.

Iată pașii pentru a crea o sesiune autentificată.

Pasul 1. Obțineți un token de acces în mediul de staging sau în cel de producție:

Cel mai probabil veți lucra cu o bibliotecă robustă OAuth2 pentru limbajul dvs., care va face toată munca grea pentru dvs. Exemplele noastre vor arăta cea mai simplă utilizare din linia de comandă folosind curl.

Terminal window
curl -X POST https://staging-iam.wink.travel/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=<YOUR_CLIENT_ID>" \
-d "client_secret=<YOUR_SECRET_KEY>"
Terminal window
curl -X POST https://iam.wink.travel/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=<YOUR_CLIENT_ID>" \
-d "client_secret=<YOUR_SECRET_KEY>"

Aceasta va returna un token de acces, împreună cu alte date din răspunsul OAuth2:

{
"access_token": "abc123"
}

Când faceți un apel către oricare dintre endpoint-urile noastre, includeți următoarele în header:

  • Wink-Version = 2.0 Ultima versiune - Consultați documentația API pentru alte versiuni disponibile.
  • Authorization = Bearer ${access_token} Introduceți tokenul dvs. de acces.

Un scope este o permisiune pe care o poartă tokenul dvs. de acces. Când solicitați un token, transmiteți o listă de scope-uri separate prin spațiu în parametrul scope, iar tokenul poate accesa doar zonele acoperite de acele scope-uri. Cu grantul client_credentials setați scope-urile în cererea de token — vedeți exemplele curl de mai sus și parcursul Postman.

Scope-urile sunt denumite section.action, unde acțiunea este una dintre:

  • read — vizualizare resurse (cereri sigure GET)
  • write — creare și actualizare resurse (POST / PUT / PATCH)
  • remove — ștergere resurse (DELETE)

Wink grupează permisiunile pe zone funcționale. Solicitați doar scope-urile de care are nevoie integrarea dvs.:

Grup scopeScope-uriCe deblocheazăRisc
Accountaccount.read account.write account.removeGestionarea entităților, membrilor echipei, setărilor, aplicațiilorScăzut–Mediu
Inventoryinventory.read inventory.write inventory.removeProprietăți, tipuri de camere, planuri tarifare, tarife, suplimente, disponibilitate, activități, atracțiiScăzut–Mediu
Bookingbooking.read booking.write booking.removeCăutare, vizualizare, creare, anulare și rambursare rezervări; checkout; politici de anulareScăzut–Mediu
Marketingmarketing.read marketing.write marketing.removeCampanii, beneficii, canale de vânzare, WinkLinks, social media gestionat, loialitateScăzut–Mediu
Contentcontent.read content.write content.removeDescrieri proprietăți, recenzii, media, hărți, indice verdeScăzut–Mediu
Analyticsanalytics.read analytics.write analytics.removeRaportare și analiză — venituri, clasamenteScăzut–Mediu
Integrationsintegrations.read integrations.write integrations.removeManageri de canale, sisteme externe de rezervări, Google Hotel, endpoint-uri de notificare, sincronizare rezervăriScăzut–Mediu
Paymentpayment.read payment.write payment.removeProcesare plăți, Stripe, Revolut, plăți, abonamenteMediu–Ridicat
Accountingaccounting.read accounting.write accounting.removeContabilitate, registru retrageri, reconciliereMediu–Ridicat
MCPmcp.read mcp.write mcp.removeDeschide transportul MCP (/mcp) pentru agenți AIScăzut–Mediu

Câteva lucruri de reținut:

  • Solicitați minimul necesar. Cereți doar scope-urile pe care integrarea dvs. le folosește efectiv — un token emis cu acces mai larg decât este necesar are o rază de impact mai mare dacă este compromis.
  • Scope-urile necunoscute sunt respinse. Solicitarea unui scope pentru care aplicația dvs. nu este înregistrată sau care nu există va eșua la emiterea tokenului.
  • mcp.* este doar pentru clienți agenți AI. Aveți nevoie de el pentru a deschide transportul MCP; nu este necesar pentru apelurile obișnuite REST API. Consultați Model Context Protocol.