deploying functions and getting token works

This commit is contained in:
talksik
2022-06-01 20:12:12 -05:00
parent e61180d7a6
commit b593f38152
7 changed files with 63 additions and 10685 deletions
@@ -0,0 +1,7 @@
import { getFunctions, httpsCallable } from 'firebase/functions';
import TwilioAccessToken from '@nirvana/core/src/functions/response/TwilioAccessToken.response';
const functions = getFunctions();
export const getTwilioAccessToken = httpsCallable(functions, 'getStreamToken');
@@ -1,6 +1,7 @@
import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
import { useMediaDevices, useMount } from 'react-use';
import { getTwilioAccessToken } from '../firebase/functions';
import { useImmer } from 'use-immer';
import { useSnackbar } from 'notistack';
@@ -63,11 +64,33 @@ export function CommunicationsProvider({ children }: { children: React.ReactNode
const devices = useUserDevices();
const getAuthToken = useCallback(async () => {
try {
const result = await getTwilioAccessToken();
console.log(result);
enqueueSnackbar('got token data');
} catch (error) {
console.error(error);
enqueueSnackbar('something went wrong trying to set up calls', { variant: 'error' });
}
}, [enqueueSnackbar]);
useMount(getAuthToken);
// const getUserAudioDevices = useMemo(() => {
// console.log(devices);
// }, [devices]);
// useMount(getUserAudioDevices);
useMount(() => {
fetch('https://ui-avatars.com/api/?name=John+Doe')
.then((result) => {
console.log(result);
})
.catch((error) => {
console.error(error);
});
});
return (
<CommunicationsContext.Provider value={{ userDeviceSelections }}>
File diff suppressed because it is too large Load Diff
-1
View File
@@ -20,7 +20,6 @@
"twilio": "^3.77.2"
},
"devDependencies": {
"@nirvana/core": "*",
"@typescript-eslint/eslint-plugin": "^3.9.1",
"@typescript-eslint/parser": "^3.8.0",
"eslint": "^7.6.0",
@@ -0,0 +1,3 @@
export default class TwilioAccessToken {
constructor(public token: string) {}
}
+6 -1
View File
@@ -1,7 +1,7 @@
import * as functions from 'firebase-functions';
import * as twilio from 'twilio';
import TwilioAccessToken from '../../../core/src/functions/response/TwilioAccessToken.response';
import TwilioAccessToken from './core/functions/response/TwilioAccessToken.response';
const AccessToken = twilio.jwt.AccessToken;
// // Start writing Firebase Functions
@@ -18,6 +18,7 @@ export const helloWorld = functions.https.onRequest((request, response) => {
export const getStreamToken = functions.https.onCall((data, context) => {
// Used when generating any kind of tokens
// To set up environmental variables, see http://twil.io/secure
try {
const twilioAccountSid = process.env.TWILIO_ACCOUNT_SID;
const twilioApiKey = process.env.TWILIO_API_KEY;
const twilioApiSecret = process.env.TWILIO_API_SECRET;
@@ -45,4 +46,8 @@ export const getStreamToken = functions.https.onCall((data, context) => {
// Serialize the token to a JWT string
return new TwilioAccessToken(token.toJwt());
} catch (error) {
functions.logger.error(error);
return undefined;
}
});
File diff suppressed because it is too large Load Diff