Hoppa till innehåll

Autentisering

En applikation förser dig med ett Client ID och en Secret Key som du behöver för att skapa en autentiserad OAuth2-session som du kan använda för att kommunicera med Wink- och TripPay-API:er.

Här är stegen för att skapa en autentiserad session.

Steg 1. Hämta en access-token på staging eller i vår produktionsmiljö:

Du kommer troligen att arbeta med ett robust OAuth2-bibliotek för ditt språk, som sköter allt det tunga arbetet åt dig. Våra exempel visar den mest grundläggande användningen från kommandoraden med 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>"

Detta returnerar en access-token, tillsammans med annan OAuth2-responsdata:

{
"access_token": "abc123"
}

När du gör ett anrop till någon av våra slutpunkter, inkludera följande i headern:

  • Wink-Version = 2.0 Senaste - Se vår API-dokumentation för andra tillgängliga versioner.
  • Authorization = Bearer ${access_token} Sätt in din access-token.

En scope är en behörighet som din access-token bär med sig. När du begär en token skickar du en mellanslagsavgränsad lista med scopes i parametern scope, och token kan endast nå de områden som scopes täcker. Med client_credentials-grant sätter du scopes på din tokenförfrågan — se curl-exemplen ovan och Postman-genomgången.

Scopes namnges section.action, där action är en av:

  • read — visa resurser (säkra GET-förfrågningar)
  • write — skapa och uppdatera resurser (POST / PUT / PATCH)
  • remove — ta bort resurser (DELETE)

Wink grupperar behörigheter efter funktionellt område. Begär endast de scopes som din integration behöver:

Scope-gruppScopesVad de låser uppRisk
Accountaccount.read account.write account.removeHantering av enheter, teammedlemmar, inställningar, applikationerLåg–Medel
Inventoryinventory.read inventory.write inventory.removeFastigheter, rumstyper, prisplaner, priser, tillägg, tillgänglighet, aktiviteter, attraktionerLåg–Medel
Bookingbooking.read booking.write booking.removeSök, visa, skapa, avboka och återbetala bokningar; utcheckning; avbokningsreglerLåg–Medel
Marketingmarketing.read marketing.write marketing.removeKampanjer, förmåner, försäljningskanaler, WinkLinks, hanterad social, lojalitetLåg–Medel
Contentcontent.read content.write content.removeFastighetsbeskrivningar, recensioner, media, kartor, grönt-indexLåg–Medel
Analyticsanalytics.read analytics.write analytics.removeRapportering och analys — intäkter, topplistorLåg–Medel
Integrationsintegrations.read integrations.write integrations.removeKanalhanterare, externa bokningssystem, Google Hotel, notifieringsendpoints, bokningssynkLåg–Medel
Paymentpayment.read payment.write payment.removeBetalningshantering, Stripe, Revolut, utbetalningar, prenumerationerMedel–Hög
Accountingaccounting.read accounting.write accounting.removeBokföring, uttagsbok, avstämningMedel–Hög
MCPmcp.read mcp.write mcp.removeÖppnar MCP-transporten (/mcp) för AI-agenterLåg–Medel

Några saker att ha i åtanke:

  • Begär minimalt. Begär endast de scopes som din integration faktiskt använder — en token utfärdad med bredare åtkomst än nödvändigt har större spridningsrisk vid läckage.
  • Okända scopes avvisas. Att begära en scope som din applikation inte är registrerad för, eller som inte finns, misslyckas vid tokenutfärdandet.
  • mcp.* är endast för AI-agentklienter. Du behöver det för att öppna MCP-transporten; det krävs inte för vanliga REST API-anrop. Se Model Context Protocol.