Se connecter à un service OAuth
Certains services, comme Google, GitHub ou Spotify, ne partagent les données d’une personne qu’une fois qu’elle s’est connectée et a donné son accord. Une intégration gère cette connexion, avec OAuth 2.0. La personne qui ajoute votre widget connecte son compte une seule fois, et votre widget obtient un jeton d’accès pour appeler le service en son nom.
1. Enregistrer votre widget auprès du service
Dans les paramètres développeur du service, créez une application OAuth. Lorsque le service vous demande une URI de redirection, parfois appelée URL de rappel, saisissez exactement :
https://console.blotch.app/oauth/callback
Le service vous fournit alors un ID client et un secret client, et sa documentation indique son point de terminaison d’autorisation, son point de terminaison de jeton et ses portées.
2. Ajouter l’intégration
-
Dans le Studio de widgets, choisissez Fichier > Entrées, puis l’onglet Intégrations.
-
Sous Nouvelle intégration, remplissez :
Champ Ce qu’il faut saisir Nom de l’intégration Un nom pour l’intégration, par exemple github. Vous l’utilisez dans votre code.ID client Fourni par le service. Secret client Fourni par le service. Il est stocké de façon sécurisée et n’est plus jamais affiché. Point de terminaison d’autorisation L’adresse de connexion du service, qui se termine souvent par /authorize.Point de terminaison de jeton L’adresse qui délivre les jetons, qui se termine souvent par /token.Portées Les autorisations dont votre widget a besoin, séparées comme le service l’attend : par des espaces, des virgules ou des +. -
Choisissez Créer une intégration.


Le formulaire affiche aussi l’URI de redirection à enregistrer, avec un bouton pour la copier. Si le service donne des noms inhabituels à ses paramètres OAuth, modifiez-les sous Avancé.
Pour essayer l’intégration vous-même, choisissez Connecter, puis connectez-vous. Son état passe à Connecté.
3. L’utiliser dans votre code
Placez dans RequireIntegration la partie de votre widget qui a besoin du compte. À l’intérieur, useIntegration vous donne le jeton d’accès :
import { RequireIntegration, useIntegration } from "~lib/integrations";
import { Paragraph } from "~lib/typography";
import { useFetch } from "~lib/use-fetch";
type GitHubUser = {
readonly login: string;
};
const Profile = () => {
const { accessToken } = useIntegration();
const { data } = useFetch<GitHubUser>("https://api.github.com/user", {
headers: { Authorization: `Bearer ${accessToken}` },
});
return <Paragraph>Signed in as {data.login}</Paragraph>;
};
export const Widget = () => (
<RequireIntegration name="github">
<Profile />
</RequireIntegration>
);
Tant que la personne n’a pas connecté son compte, RequireIntegration affiche une invitation à le connecter à la place de son contenu. Blotch renouvelle les jetons quand ils expirent.
Consultez Intégrations dans la référence pour connaître tout ce que renvoie useIntegration.
Ajouter une intégration plus tard
Chacun est invité à connecter une nouvelle intégration au moment de la mise à niveau : en ajouter une à un widget déjà publié fait donc de la version suivante une version majeure. Consultez Numéros de version.
Les modifications des paramètres d’une intégration existante s’appliquent tout de suite, sans publier.