Error module not found , key.json
Need help. I am trying to use App router here using NextJS.
Error says Cannot find module
error Error: Cannot find module 'C:\path\to\project\packages\frontend\public\google\client.json' at webpackEmptyContext (C:\path\to\project\packages\frontend\.next\server\app\api\captions\route.js:22:10)
Now, the client.json file is placed in public/google directory and I'm trying to access it in api route.ts
This is the code in route.ts
// app/api/captions/route.ts
import { google } from "googleapis";
import { authenticate } from "@google-cloud/local-auth";
import path from "path";
export async function GET() {
const auth = await authenticate({
keyfilePath: path.resolve("public", "google", "client.json"),
scopes: ["https://www.googleapis.com/auth/youtube"],
});
google.options({ auth });
console.log(auth);
}
I am facing the same issue. Works fine in js but not ts
I am facing the same issue. Works fine in js but not ts
Was able to make this work by using google api client directly.
So instead of that, I did implement it like this,
Using App Router:
import { google } from "googleapis";
import path from "path";
export async function GET(request: NextRequest) {
const auth = new google.auth.GoogleAuth({
keyFile: path.resolve("public", "google", "client.json"),
scopes: [
"https://www.googleapis.com/auth/youtube",
],
});
google.options({ auth: auth });
console.log(auth);
}
Can confirm. This breaks in a fresh TS project.
I got around it by using the Page Router. App Router will not work with this package.
I have the same problem on NextJs with the app router. I followed this tutorial to make it work is the same approach as @isaacdarcilla
I am facing the same issue. Works fine in js but not ts
Was able to make this work by using google api client directly.
So instead of that, I did implement it like this,
import { google } from "googleapis"; import path from "path"; export async function GET(request: NextRequest) { const auth = new google.auth.GoogleAuth({ keyFile: path.resolve("public", "google", "client.json"), scopes: [ "https://www.googleapis.com/auth/youtube", ], }); google.options({ auth: auth }); console.log(auth); }
Works like a charm. Thx