deploying functions and getting token works
This commit is contained in:
@@ -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 }}>
|
||||
|
||||
-7931
File diff suppressed because it is too large
Load Diff
@@ -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) {}
|
||||
}
|
||||
@@ -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
Reference in New Issue
Block a user