From 15c9306bc8a24471e63dc6672606e2b5bcdf9107 Mon Sep 17 00:00:00 2001 From: Serge <2901744+evercoinx@users.noreply.github.com> Date: Wed, 16 Jul 2025 14:22:57 +0300 Subject: [PATCH] Update Facebook integration --- .env.example | 2 +- src/actions/turnkey.ts | 18 +++++++++++++----- src/env.mjs | 2 ++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.env.example b/.env.example index 7c82a11..c92ceac 100644 --- a/.env.example +++ b/.env.example @@ -6,7 +6,7 @@ NEXT_PUBLIC_GOOGLE_OAUTH_CLIENT_ID= NEXT_PUBLIC_APPLE_OAUTH_CLIENT_ID= NEXT_PUBLIC_FACEBOOK_CLIENT_ID= NEXT_PUBLIC_FACEBOOK_GRAPH_API_VERSION=21.0 -NEXT_PUBLIC_FACEBOOK_AUTH_VERSION=11.0 +NEXT_PUBLIC_FACEBOOK_AUTH_VERSION=21.0 # Sensitive values ideally for server only ALCHEMY_API_KEY= diff --git a/src/actions/turnkey.ts b/src/actions/turnkey.ts index a9cfd31..1160dd4 100644 --- a/src/actions/turnkey.ts +++ b/src/actions/turnkey.ts @@ -58,24 +58,32 @@ export async function exchangeToken(code: string, codeVerifier: string) { const url = `https://graph.facebook.com/v${graphAPIVersion}/oauth/access_token` const clientID = env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID + const clientSecret = env.FACEBOOK_APP_SECRET const redirectURI = `${siteConfig.url.base}/oauth-callback/facebook` const params = new URLSearchParams({ client_id: clientID, + client_secret: clientSecret, redirect_uri: redirectURI, code: code, code_verifier: codeVerifier, }) try { - const target = `${url}?${params.toString()}` - - const response = await fetch(target, { - method: "GET", + const response = await fetch(url, { + method: "POST", + headers: { + "Content-Type": "application/x-www-form-urlencoded", + }, + body: params.toString(), }) if (!response.ok) { - throw new Error(`Token exchange failed: ${response.statusText}`) + const errorText = await response.text() + console.error("Facebook token exchange error:", errorText) + throw new Error( + `Token exchange failed: ${response.statusText} - ${errorText}` + ) } const data = await response.json() diff --git a/src/env.mjs b/src/env.mjs index 4525522..29624f9 100644 --- a/src/env.mjs +++ b/src/env.mjs @@ -23,6 +23,7 @@ export const env = createEnv({ NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL: z.string().optional(), NEXT_PUBLIC_APP_URL: z.string().optional(), FACEBOOK_SECRET_SALT: z.string().min(1), + FACEBOOK_APP_SECRET: z.string().min(1), NEXT_PUBLIC_FACEBOOK_CLIENT_ID: z.string().min(1), NEXT_PUBLIC_FACEBOOK_GRAPH_API_VERSION: z.string().min(1), TURNKEY_API_PUBLIC_KEY: z.string().min(1), @@ -52,6 +53,7 @@ export const env = createEnv({ NEXT_PUBLIC_APP_URL: process.env.NEXT_PUBLIC_APP_URL, NEXT_PUBLIC_BASE_URL: process.env.NEXT_PUBLIC_BASE_URL, FACEBOOK_SECRET_SALT: process.env.FACEBOOK_SECRET_SALT, + FACEBOOK_APP_SECRET: process.env.FACEBOOK_APP_SECRET, TURNKEY_API_PUBLIC_KEY: process.env.TURNKEY_API_PUBLIC_KEY, TURNKEY_API_PRIVATE_KEY: process.env.TURNKEY_API_PRIVATE_KEY, NEXT_PUBLIC_ORGANIZATION_ID: process.env.NEXT_PUBLIC_ORGANIZATION_ID,