Enregistrer votre application
Les applications sont enregistrées par EatNow. Envoyez-nous le nom de votre application, son logo, les URI de redirection (comparées caractère par caractère : schéma, hôte, port, chemin et paramètres) et les scopes nécessaires. Vous recevez unclient_id et un client_secret, affiché une seule fois :
gardez le secret sur votre serveur uniquement.
Une application éditée par EatNow (comme ClubNow) fonctionne sur tous les
restaurants. Une application tierce exige en plus l’option API du restaurant,
comme une clé créée à la main.
1. Envoyer l’utilisateur sur la page de consentement
Générez uncode_verifier (43 à 128 caractères parmi A-Z a-z 0-9 - . _ ~) et
un state aléatoire, gardez-les dans la session de l’utilisateur, puis
redirigez le navigateur vers :
2. Traiter le retour
EatNow redirige le navigateur vers votreredirect_uri avec state et soit un
code, soit une error :
Un
client_id inconnu ou désactivé, ou une redirect_uri non enregistrée,
n’est jamais redirigé : l’utilisateur voit l’erreur sur EatNow.
Le code est valable 5 minutes et une seule fois.
3. Échanger le code contre un jeton
Depuis votre serveur,POST https://app.eat-now.io/api/oauth/token en
application/x-www-form-urlencoded (le JSON est aussi accepté). Authentifiez le
client par HTTP Basic (client_id:client_secret, chacun encodé comme un
formulaire) ou par client_id et client_secret dans le corps, pas les
deux.
Cache-Control: no-store. Conservez le jeton côté serveur,
avec l’id du restaurant.
4. Appeler l’API partenaire
WEBHOOKS_WRITE, abonnez une URL HTTPS à des événements avec
POST /api/partner/v1/webhook-endpoints. Le secret de signature n’est renvoyé
que dans cette réponse. Chaque type d’événement demande le scope de lecture
correspondant, et les coordonnées ne figurent dans les charges utiles qu’avec
RESERVATIONS_READ_SENSITIVE. Voir
Gérer les endpoints par l’API.
Cycle de vie d’une connexion
- Reconnexion. Une nouvelle autorisation pour le même restaurant ne
révoque pas le jeton précédent : une fois la nouvelle connexion en place,
révoquez l’ancien jeton avec
POST /api/oauth/revoke(ci-dessous). Au plus 3 jetons restent actifs par restaurant et par application : l’émission d’un quatrième révoque le plus ancien et supprime les endpoints de webhooks qu’il a créés. - Déconnexion par le restaurant. Paramètres › Intégrations › Applications
connectées liste les applications connectées ; Déconnecter révoque tous
les jetons actifs de l’application sur ce restaurant et supprime leurs
endpoints de webhooks. Vos appels reçoivent alors
401 INVALID_AUTHENTICATION: proposez à l’utilisateur de se reconnecter. - Déconnexion par votre application.
POST /api/oauth/revoke(RFC 7009) avectokenet la même authentification du client que pour l’échange. La réponse est200, même pour un jeton inconnu ou déjà révoqué.