📝 Add env WHATSAPP_CLOUD_API_URL to possible change https://gr… (#1170)
refs #1117 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Dynamically construct API URLs for WhatsApp features using environment variables for improved reliability and configurability. - Updated `sendWhatsAppMessage` function to use `env.WHATSAPP_CLOUD_API_URL` for URL construction, allowing for more dynamic configuration. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Baptiste Arnaud <baptiste.arnaud95@gmail.com>
This commit is contained in:
committed by
Baptiste Arnaud
parent
ef05b71869
commit
47af9a9a59
@ -5,6 +5,7 @@ import prisma from '@typebot.io/lib/prisma'
|
||||
import { decrypt } from '@typebot.io/lib/api/encryption/decrypt'
|
||||
import { TRPCError } from '@trpc/server'
|
||||
import { WhatsAppCredentials } from '@typebot.io/schemas/features/whatsapp'
|
||||
import { env } from '@typebot.io/env'
|
||||
|
||||
const inputSchema = z.object({
|
||||
credentialsId: z.string().optional(),
|
||||
@ -22,7 +23,7 @@ export const getPhoneNumber = authenticatedProcedure
|
||||
message: 'Credentials not found',
|
||||
})
|
||||
const { display_phone_number } = (await got(
|
||||
`https://graph.facebook.com/v17.0/${credentials.phoneNumberId}`,
|
||||
`${env.WHATSAPP_CLOUD_API_URL}/v17.0/${credentials.phoneNumberId}`,
|
||||
{
|
||||
headers: {
|
||||
Authorization: `Bearer ${credentials.systemUserAccessToken}`,
|
||||
|
@ -5,6 +5,7 @@ import { TRPCError } from '@trpc/server'
|
||||
import { WhatsAppCredentials } from '@typebot.io/schemas/features/whatsapp'
|
||||
import prisma from '@typebot.io/lib/prisma'
|
||||
import { decrypt } from '@typebot.io/lib/api/encryption/decrypt'
|
||||
import { env } from '@typebot.io/env'
|
||||
|
||||
const inputSchema = z.object({
|
||||
token: z.string().optional(),
|
||||
@ -28,7 +29,7 @@ export const getSystemTokenInfo = authenticatedProcedure
|
||||
const {
|
||||
data: { expires_at, scopes, app_id, application },
|
||||
} = (await got(
|
||||
`https://graph.facebook.com/v17.0/debug_token?input_token=${credentials.systemUserAccessToken}`,
|
||||
`${env.WHATSAPP_CLOUD_API_URL}/v17.0/debug_token?input_token=${credentials.systemUserAccessToken}`,
|
||||
{
|
||||
headers: {
|
||||
Authorization: `Bearer ${credentials.systemUserAccessToken}`,
|
||||
|
@ -10,6 +10,7 @@ import { isReadWorkspaceFobidden } from '@/features/workspace/helpers/isReadWork
|
||||
import { WhatsAppCredentials } from '@typebot.io/schemas/features/whatsapp'
|
||||
import got from 'got'
|
||||
import { decrypt } from '@typebot.io/lib/api/encryption/decrypt'
|
||||
import { env } from '@typebot.io/env'
|
||||
|
||||
const handler = async (req: NextApiRequest, res: NextApiResponse) => {
|
||||
if (req.method === 'GET') {
|
||||
@ -61,7 +62,7 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
|
||||
)) as WhatsAppCredentials['data']
|
||||
|
||||
const { body } = await got.get({
|
||||
url: `https://graph.facebook.com/v17.0/${mediaId}`,
|
||||
url: `${env.WHATSAPP_CLOUD_API_URL}/v17.0/${mediaId}`,
|
||||
headers: {
|
||||
Authorization: `Bearer ${credentialsData.systemUserAccessToken}`,
|
||||
},
|
||||
|
@ -238,12 +238,13 @@ In order to be able to test your bot on WhatsApp from the Preview drawer, you ne
|
||||
|
||||
</Accordion>
|
||||
|
||||
| Parameter | Default | Description |
|
||||
| ------------------------------------- | ------- | ------------------------------------------------------- |
|
||||
| META_SYSTEM_USER_TOKEN | | The system user token used to send WhatsApp messages |
|
||||
| WHATSAPP_PREVIEW_FROM_PHONE_NUMBER_ID | | The phone number ID from which the message will be sent |
|
||||
| WHATSAPP_PREVIEW_TEMPLATE_NAME | | The preview start template message name |
|
||||
| WHATSAPP_PREVIEW_TEMPLATE_LANG | en | The preview start template message name |
|
||||
| Parameter | Default | Description |
|
||||
| ------------------------------------- | -------------------------- | ------------------------------------------------------- |
|
||||
| META_SYSTEM_USER_TOKEN | | The system user token used to send WhatsApp messages |
|
||||
| WHATSAPP_PREVIEW_FROM_PHONE_NUMBER_ID | | The phone number ID from which the message will be sent |
|
||||
| WHATSAPP_PREVIEW_TEMPLATE_NAME | | The preview start template message name |
|
||||
| WHATSAPP_PREVIEW_TEMPLATE_LANG | en | The preview start template message name |
|
||||
| WHATSAPP_CLOUD_API_URL | https://graph.facebook.com | The WhatsApp Cloud API base URL |
|
||||
|
||||
## Others
|
||||
|
||||
|
@ -3,6 +3,7 @@ import {
|
||||
WhatsAppCredentials,
|
||||
WhatsAppSendingMessage,
|
||||
} from '@typebot.io/schemas/features/whatsapp'
|
||||
import { env } from '@typebot.io/env'
|
||||
|
||||
type Props = {
|
||||
to: string
|
||||
@ -16,7 +17,7 @@ export const sendWhatsAppMessage = async ({
|
||||
credentials,
|
||||
}: Props) =>
|
||||
got.post({
|
||||
url: `https://graph.facebook.com/v17.0/${credentials.phoneNumberId}/messages`,
|
||||
url: `${env.WHATSAPP_CLOUD_API_URL}/v17.0/${credentials.phoneNumberId}/messages`,
|
||||
headers: {
|
||||
Authorization: `Bearer ${credentials.systemUserAccessToken}`,
|
||||
},
|
||||
|
5
packages/env/env.ts
vendored
5
packages/env/env.ts
vendored
@ -283,6 +283,11 @@ const whatsAppEnv = {
|
||||
WHATSAPP_PREVIEW_FROM_PHONE_NUMBER_ID: z.string().min(1).optional(),
|
||||
WHATSAPP_PREVIEW_TEMPLATE_NAME: z.string().min(1).optional(),
|
||||
WHATSAPP_PREVIEW_TEMPLATE_LANG: z.string().min(1).optional().default('en'),
|
||||
WHATSAPP_CLOUD_API_URL: z
|
||||
.string()
|
||||
.url()
|
||||
.optional()
|
||||
.default('https://graph.facebook.com'),
|
||||
},
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user