
here is my code
TypeScript
import { default as axios } from 'axios';
import fetch from 'node-fetch';
import { WebhookReceiver } from 'livekit-server-sdk';
// This is your Appwrite function
// It's executed each time we get a request
export default async ({ req, res, log, error }) => {
const client = new Client();
const functions = new Functions(client);
const database = new Databases(client);
client.setEndpoint('https://cloud.appwrite.io/v1')
.setProject(process.env.APPWRITE_FUNCTION_PROJECT_ID)
.setKey(process.env.APPWRITE_API_KEY);
const ENDPOINT = process.env.MY_APPWRITE_ENDPOINT;
const PROJECT_ID = process.env.APPWRITE_PROJECT_ID;
const API_KEY = process.env.APPWRITE_API_KEY;
const DATABASE_ID = process.env.DATABASE_ID;
const LIVEKIT_STREAMING_COLLECTION = process.env.LIVEKIT_STREAMING_COLLECTION;
const LIVE_KIT_API = process.env.LIVE_KIT_API;
const LIVE_KIT_SEC_KEY = process.env.LIVE_KIT_SEC_KEY;
const LIVE_KIT_WEBSOCKET = process.env.LIVE_KIT_WEBSOCKET;
const receiver = new WebhookReceiver(LIVE_KIT_API, LIVE_KIT_SEC_KEY);
if (req.method === 'POST') {
const jsondData = JSON.parse(req.bodyRaw);
const VideoLibraryId = jsondData.VideoLibraryId;
const VideoGuid = jsondData.VideoGuid;
const Status = jsondData.Status;
// Event is a WebhookEvent object
var headers = req.headers;
log(`headers ${headers}`);
var authorization = headers['authorization'];
// const authorization = req.headers["Authorization"];
const event = await receiver.receive(req.body, authorization);
log(`Events ${event}`);
}
return res.send({method: 'method is POST'});
};
TL;DR
Error message: ReferenceError: crypto is not defined
Developer needs a higher NodeJS runtime. The issue is due to the usage of WebhookReceiver from 'livekit-server-sdk' that requires the 'crypto' module which is not available in the current NodeJS runtime version (18.0).
Solution: Update NodeJS to a higher version that includes the 'crypto' module.
I'm using NodeJs Runtime Environment 18.0

@Joshi hello

You literally put the answer to your problem in the title

my head is smoking and confused...

it seem like i need a higher nodejs runtime
Recommended threads
- Domain Verification failed
I think i did the step by step well but just not work. When I enter the page I have this error: `Requested host does not match any Subject Alternative Names (S...
- Adding custom domain to Appwrite project
My app is hosted on Vercel on domain todo.velleb.com. On PC, the OAuth logins like GitHub, Discord and Google work and create the account and log in. On mobile ...
- Auth ( OTP Session )
Hi, i would like to ask about OTP session login, may i know is it doable for dynamic/variable for sender,reply-to or not?
