Yes, you can use other conferencing providers even if your user authenticated with Google. The conf_grant_id allows you to specify a different grant for conference creation.To use Zoom conferencing with your Google-authenticated user, you need to:
- Create a separate Zoom authentication for the user who will host the conference. This creates a Zoom grant ID that you’ll use as the
conf_grant_id.
- Get the Zoom grant ID by authenticating with Zoom using either:
◦ Hosted OAuth: Start authentication with Zoom and exchange the code for a grant ID
◦ Custom authentication: Use an existing Zoom refresh token
Here’s how to authenticate with Zoom using Hosted OAuth:
https://api.us.nylas.com/v3/connect/auth? client_id=<NYLAS_CLIENT_ID> &redirect_uri=https://myapp.com/callback-handler // Your application's callback_uri. &response_type=code &access_type=offline &provider=zoom
Then exchange the code for a grant ID:
curl --request POST \ --url 'https://api.us.nylas.com/v3/connect/token' \ --header 'Content-Type: application/json' \ --header 'Authorization: <sensitive_data>' \ --data '{ "code": "<NYLAS_CODE>", "client_id": "<NYLAS_CLIENT_ID>", "client_secret": "<sensitive_data>", "redirect_uri": "https://myapp.example.com/callback", "grant_type": "authorization_code" }'
Use the Zoom grant ID when creating events with Zoom conferencing:
conferencing:curl --request POST \ --url 'https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/events?calendar_id=<CALENDAR_ID>' \ --header 'Accept: application/json, application/gzip' \ --header 'Authorization: Bearer <sensitive_data>' \ --header 'Content-Type: application/json' \ --data '{ "title": "Philosophy Club Zoom Meeting", "status": "confirmed", "busy": true, "conferencing": { "provider": "Zoom Meeting", "autocreate": { "conf_grant_id": "<USER_ZOOM_GRANT_ID>" } }, "participants": [ { "name": "Leyah Miller", "email": "leyah@example.com" }, { "name": "Nyla", "email": "nyla@example.com" } ], "description": "Come ready to talk philosophy!", "when": { "start_time": 1674604800, "end_time": 1722382420, "start_timezone": "America/New_York", "end_timezone": "America/New_York" } }'
Important: You must first create a Zoom OAuth application and Zoom connector in your Nylas application before you can authenticate users with Zoom. The user specified in conf_grant_id acts as the conference host and needs to join the conference to admit other participants.
You can find docs for creating the Zoom conf_grant_id here.