Si vous avez déjà un access token, je vous montre dans un autre guide comment configurer des webhooks , ici
Pour pouvoir accéder à l’api, on aura besoin d’un bearer access token. Mais il n’est pas accessible facilement. en effet, Calendly ont mit le système de Oauth.
Je vais vous montrer dans ce tutoriel comment y accéder.
je me base sur https://developer.calendly.com/create-a-developer-account et de leurs docs pour faire ce tuto.
prérequis: avoir un compte calendly (même avec le plan free)
Etape 1: créer une nouvelle application
Tout d’abord, Accéder à https://developer.calendly.com/console/apps
Ensuite, cliquer sur + create new app
Puis, remplir les champs

Copiez quelque part le client id, client secret et webhook signing key

Etape 2: récupérer le “code”
Premièrement, Dans un browser , mettre l’url suivant en adaptant {{client_id}} et {{redirect_uri}}
https://auth.calendly.com/oauth/authorize?response_type=code&redirect_uri={{redirect_uri}}&client_id={{client_id}}

Et ensuite, vous allez être redirigé avec le code, notez le.

Etape 3: Récuperer le bearer access token (enfin)
Il faudra commencer par faire un POST.
POST https://api.calendly.com/oauth/token
Ici, J’utilise postman (que je conseil), mais vous utilisez ce que vous voulez
Ensuite, Dans l’onglet Params, faudra mettre ces champs

Puis, dans l’onglet Authorization, choisir basic auth , et remplir les champs username qui correspond {{client_id}} et password qui correspond le {{client_secret}}

Juste à titre indicatif: le cUrl doit ressembler à ça
curl --location --globoff --request POST 'https://auth.calendly.com/oauth/token?grant_type=authorization_code&code={{code%20qu%27on%20a%20r%C3%A9cup%C3%A9rer%20%C3%A0%20l%27%C3%A9tape%202}}&redirect_uri=http%3A%2F%2Flocalhost%3A1234'
--header 'Content-Type: application/x-www-form-urlencoded'
--header 'Authorization: Basic {{base64 de username:password}}'
Et enfin, en Response vous aurez votre bearer access token, et aussi d’autres info utiles comme le {{uuid}} , {{organization_id}}, et aussi le {{refresh_token}} → très important, gardez le au chaud
{
"access_token": "{{le bearer access token}}",
"token_type": "Bearer",
"expires_in": 7200,
"refresh_token": "{{refresh_token}}",
"scope": "default",
"created_at": 1729092447,
"owner": "https://api.calendly.com/users/{{uuid}}",
"organization": "https://api.calendly.com/organizations/{{organization_id}}"
}
Etape 4: Tester si ça fonctionne bien
Avec le bearer access token, on va voir si ça fonctionne bien en faisant un GET avec postman GET https://api.calendly.com/users/me

Pour finir, si vous avez ça comme Response , bravo vous avez votre bearer access token prêt à l’emploi
{
"resource": {
"avatar_url": null,
"created_at": "2024-08-29T12:59:40.533281Z",
"current_organization": "https://api.calendly.com/organizations/{{organization_id}}",
"email": "[email protected]",
"name": "Pascal Yu",
"resource_type": "User",
"scheduling_url": "https://calendly.com/pascal-yu-freelance",
"slug": "pascal-yu-freelance",
"timezone": "Europe/Berlin",
"updated_at": "2024-09-13T00:11:29.757612Z",
"uri": "https://api.calendly.com/users/{{uuid}}"
}
}
Etape 5: Bearer access token expiré?
En effet, le bearer access token peut s’expirer au bout d’un temps.
On va commencer par le récupérer à l’aide du {{refresh_token}} qu’on a récupéré à l’étape 3.
Puis, On va faire un POST sur la même requête que l’étape 3, mais on va changer quelques paramètres
POST https://auth.calendly.com/oauth/token?grant_type=refresh_token&refresh_token={{refresh_token}}

Et finalement, en Response avec le fameux token.
{
"access_token": {{bearer_access_token}},
"token_type": "Bearer",
"expires_in": 7200,
"refresh_token": {{refresh_token}},
"scope": "default",
"created_at": 1729169274,
"owner": "https://api.calendly.com/users/{{uuid}}",
"organization": "https://api.calendly.com/organizations/{{organization_id}}"
}
Ansi termine ce tuto, j’ai écris un guide pour créer des hooks ici, sinon vous pouvez utiliser ce token dans l’interface que j’ai fais : http://83.202.18.38
Je suis Pascal Yu, je vous aide à développer vos solutions à l’aide de Symfony.
Prend un rendez vous gratuitement avec moi pour savoir comment je peux vous aider.