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
- Bug on Updating User Limit
I’ve encountered a bug in the Appwrite Cloud UI when attempting to update the user limit to 0. My goal is to disable public registration while still allowing e...
- Failed to load data from database
My app broken, it throw AppwriteException exception. Few days ago it works well. AppwriteException: , ClientException with SocketException: Failed host lookup:...
- Getting CORS error when accessing websit...
When accessing my website I'm getting: (index):1 Access to font at 'https://assets.appwrite.io/fonts/inter/Inter-Regular.woff2' from origin 'https://mvp-site-ra...