Skip to content

Commit

Permalink
refactor: updated messages snippets
Browse files Browse the repository at this point in the history
  • Loading branch information
manchuck committed Feb 18, 2025
1 parent 49be4d9 commit 39a4898
Show file tree
Hide file tree
Showing 59 changed files with 2,157 additions and 1,123 deletions.
43 changes: 43 additions & 0 deletions .env-example
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,49 @@ ACCOUNT_SMS_CALLBACK_URL=
# Dispatch

# Messages
MESSAGES_TO_NUMBER=
MESSAGES_API_URL=
GEOSPECIFIC_MESSAGES_API_URL=
MESSAGES_MESSAGE_ID=

## For SMS messaging
SMS_SENDER_ID=

## For MMS messaging
MMS_SENDER_ID=

## For RCS messaging
RCS_SENDER_ID=

# For WhatsApp messaging
WHATSAPP_SENDER_ID=
WHATSAPP_TEMPLATE_NAME=
WHATSAPP_CATALOG_ID=
WHATSAPP_PRODUCT_ID_1=
WHATSAPP_PRODUCT_ID_2=
WHATSAPP_OTP=

## For Facebook Messenger messaging
MESSENGER_RECIPIENT_ID=
MESSENGER_SENDER_ID=

## For Viber messaging
VIBER_SENDER_ID=

## For media messaging (MMS, RCS, WhatsApp, Messenger, Viber)
MESSAGES_IMAGE_URL=
MESSAGES_AUDIO_URL=
MESSAGES_VIDEO_URL=
MESSAGES_VIDEO_DURATION=
MESSAGES_VIDEO_FILE_SIZE=
MESSAGES_FILE_URL=
MESSAGES_VCARD_URL=
MESSAGES_EMOJI=
WHATSAPP_STICKER_ID=
WHATSAPP_STICKER_URL=

## For Sandbox messaging
MESSAGES_SANDBOX_URL=

# Number Insight
INSIGHT_NUMBER=
Expand Down
3 changes: 0 additions & 3 deletions messages/.gitignore

This file was deleted.

51 changes: 31 additions & 20 deletions messages/messenger/send-audio.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,38 @@
require('dotenv').config({ path: __dirname + '/../../.env' });
const { Vonage } = require('@vonage/server-sdk');
const { Channels } = require('@vonage/messages');

const VONAGE_APPLICATION_ID = process.env.VONAGE_APPLICATION_ID;
const VONAGE_PRIVATE_KEY = process.env.VONAGE_PRIVATE_KEY;
const MESSENGER_RECIPIENT_ID = process.env.MESSENGER_RECIPIENT_ID;
const MESSENGER_SENDER_ID = process.env.MESSENGER_SENDER_ID;
const MESSAGES_AUDIO_URL = process.env.MESSAGES_AUDIO_URL;
const MESSAGES_API_URL = process.env.MESSAGES_API_URL;

const FB_RECIPIENT_ID = process.env.FB_RECIPIENT_ID;
const FB_SENDER_ID = process.env.FB_SENDER_ID;
const AUDIO_URL = process.env.AUDIO_URL;

const { Vonage } = require('@vonage/server-sdk');
const { MessengerAudio } = require('@vonage/messages');

const vonage = new Vonage({
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
});
/**
* It is best to send messages using JWT instead of basic auth. If you leave out
* apiKey and apiSecret, the messages SDK will send requests using JWT tokens
*
* @link https://developer.vonage.com/en/messages/technical-details#authentication
*/
const vonage = new Vonage(
{
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
},
{
...(MESSAGES_API_URL ? {apiHost: MESSAGES_API_URL} : {}),
},
);

vonage.messages.send(
new MessengerAudio({
audio: {
url: AUDIO_URL,
},
to: FB_RECIPIENT_ID,
from: FB_SENDER_ID,
}))
.then(({ messageUUID}) => console.log(messageUUID))
vonage.messages.send({
messaegType: 'audio',
channel: Channels.MESSENGER,
audio: {
url: MESSAGES_AUDIO_URL,
},
to: MESSENGER_RECIPIENT_ID,
from: MESSENGER_SENDER_ID,
})
.then(({ messageUUID }) => console.log(messageUUID))
.catch((error) => console.error(error));
52 changes: 31 additions & 21 deletions messages/messenger/send-file.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,38 @@
require('dotenv').config({ path: __dirname + '/../../.env' });
const { Vonage } = require('@vonage/server-sdk');
const { Channels } = require('@vonage/messages');

const VONAGE_APPLICATION_ID = process.env.VONAGE_APPLICATION_ID;
const VONAGE_PRIVATE_KEY = process.env.VONAGE_PRIVATE_KEY;
const MESSENGER_RECIPIENT_ID = process.env.MESSENGER_RECIPIENT_ID;
const MESSENGER_SENDER_ID = process.env.MESSENGER_SENDER_ID;
const MESSAGES_FILE_URL = process.env.MESSAGES_FILE_URL;
const MESSAGES_API_URL = process.env.MESSAGES_API_URL;

const FB_RECIPIENT_ID = process.env.FB_RECIPIENT_ID;
const FB_SENDER_ID = process.env.FB_SENDER_ID;
const FILE_URL = process.env.FILE_URL;

const { Vonage } = require('@vonage/server-sdk');
const { MessengerFile } = require('@vonage/messages');

const vonage = new Vonage({
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
});
/**
* It is best to send messages using JWT instead of basic auth. If you leave out
* apiKey and apiSecret, the messages SDK will send requests using JWT tokens
*
* @link https://developer.vonage.com/en/messages/technical-details#authentication
*/
const vonage = new Vonage(
{
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
},
{
...(MESSAGES_API_URL ? {apiHost: MESSAGES_API_URL} : {}),
},
);

vonage.messages.send(
new MessengerFile({
file: {
url: FILE_URL,
},
to: FB_RECIPIENT_ID,
from: FB_SENDER_ID,
}),
)
.then(({ messageUUID}) => console.log(messageUUID))
vonage.messages.send({
messageType: 'file',
channel: Channels.MESSENGER,
file: {
url: MESSAGES_FILE_URL,
},
to: MESSENGER_RECIPIENT_ID,
from: MESSENGER_SENDER_ID,
})
.then(({ messageUUID }) => console.log(messageUUID))
.catch((error) => console.error(error));
52 changes: 31 additions & 21 deletions messages/messenger/send-image.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,38 @@
require('dotenv').config({ path: __dirname + '/../../.env' });
const { Vonage } = require('@vonage/server-sdk');
const { Channels } = require('@vonage/messages');

const VONAGE_APPLICATION_ID = process.env.VONAGE_APPLICATION_ID;
const VONAGE_PRIVATE_KEY = process.env.VONAGE_PRIVATE_KEY;
const MESSENGER_RECIPIENT_ID = process.env.MESSENGER_RECIPIENT_ID;
const MESSENGER_SENDER_ID = process.env.MESSENGER_SENDER_ID;
const MESSAGES_IMAGE_URL = process.env.MESSAGES_IMAGE_URL;
const MESSAGES_API_URL = process.env.MESSAGES_API_URL;

const FB_RECIPIENT_ID = process.env.FB_RECIPIENT_ID;
const FB_SENDER_ID = process.env.FB_SENDER_ID;
const IMAGE_URL = process.env.IMAGE_URL;

const { Vonage } = require('@vonage/server-sdk');
const { MessengerImage } = require('@vonage/messages');

const vonage = new Vonage({
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
});
/**
* It is best to send messages using JWT instead of basic auth. If you leave out
* apiKey and apiSecret, the messages SDK will send requests using JWT tokens
*
* @link https://developer.vonage.com/en/messages/technical-details#authentication
*/
const vonage = new Vonage(
{
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
},
{
...(MESSAGES_API_URL ? {apiHost: MESSAGES_API_URL} : {}),
},
);

vonage.messages.send(
new MessengerImage({
image: {
url: IMAGE_URL,
},
to: FB_RECIPIENT_ID,
from: FB_SENDER_ID,
}),
)
.then(({ messageUUID}) => console.log(messageUUID))
vonage.messages.send({
messageType: 'image',
channel: Channels.MESSENGER,
image: {
url: MESSAGES_IMAGE_URL,
},
to: MESSENGER_RECIPIENT_ID,
from: MESSENGER_SENDER_ID,
})
.then(({ messageUUID }) => console.log(messageUUID))
.catch((error) => console.error(error));
46 changes: 28 additions & 18 deletions messages/messenger/send-text.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,35 @@
require('dotenv').config({ path: __dirname + '/../../.env' });
const { Vonage } = require('@vonage/server-sdk');
const { Channels } = require('@vonage/messages');

const VONAGE_APPLICATION_ID = process.env.VONAGE_APPLICATION_ID;
const VONAGE_PRIVATE_KEY = process.env.VONAGE_PRIVATE_KEY;
const MESSENGER_RECIPIENT_ID = process.env.MESSENGER_RECIPIENT_ID;
const MESSENGER_SENDER_ID = process.env.MESSENGER_SENDER_ID;
const MESSAGES_API_URL = process.env.MESSAGES_API_URL;

const FB_RECIPIENT_ID = process.env.FB_RECIPIENT_ID;
const FB_SENDER_ID = process.env.FB_SENDER_ID;

const { Vonage } = require('@vonage/server-sdk');
const { MessengerText } = require('@vonage/messages');

const vonage = new Vonage({
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
});
/**
* It is best to send messages using JWT instead of basic auth. If you leave out
* apiKey and apiSecret, the messages SDK will send requests using JWT tokens
*
* @link https://developer.vonage.com/en/messages/technical-details#authentication
*/
const vonage = new Vonage(
{
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
},
{
...(MESSAGES_API_URL ? {apiHost: MESSAGES_API_URL} : {}),
},
);

vonage.messages.send(
new MessengerText({
text: 'This is a Facebook Messenger text message sent using the Messages API',
to: FB_RECIPIENT_ID,
from: FB_SENDER_ID,
}),
)
.then(({ messageUUID}) => console.log(messageUUID))
vonage.messages.send({
messageType: 'text',
channel: Channels.MESSENGER,
text: 'This is a Facebook Messenger text message sent using the Messages API',
to: MESSENGER_RECIPIENT_ID,
from: MESSENGER_SENDER_ID,
})
.then(({ messageUUID }) => console.log(messageUUID))
.catch((error) => console.error(error));
52 changes: 31 additions & 21 deletions messages/messenger/send-video.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,38 @@
require('dotenv').config({ path: __dirname + '/../../.env' });
const { Vonage } = require('@vonage/server-sdk');
const { Channels } = require('@vonage/messages');

const VONAGE_APPLICATION_ID = process.env.VONAGE_APPLICATION_ID;
const VONAGE_PRIVATE_KEY = process.env.VONAGE_PRIVATE_KEY;
const MESSENGER_RECIPIENT_ID = process.env.MESSENGER_RECIPIENT_ID;
const MESSENGER_SENDER_ID = process.env.MESSENGER_SENDER_ID;
const MESSAGES_VIDEO_URL = process.env.MESSAGES_VIDEO_URL;
const MESSAGES_API_URL = process.env.MESSAGES_API_URL;

const FB_RECIPIENT_ID = process.env.FB_RECIPIENT_ID;
const FB_SENDER_ID = process.env.FB_SENDER_ID;
const VIDEO_URL = process.env.VIDEO_URL;

const { Vonage } = require('@vonage/server-sdk');
const { MessengerVideo } = require('@vonage/messages');

const vonage = new Vonage({
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
});
/**
* It is best to send messages using JWT instead of basic auth. If you leave out
* apiKey and apiSecret, the messages SDK will send requests using JWT tokens
*
* @link https://developer.vonage.com/en/messages/technical-details#authentication
*/
const vonage = new Vonage(
{
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
},
{
...(MESSAGES_API_URL ? {apiHost: MESSAGES_API_URL} : {}),
},
);

vonage.messages.send(
new MessengerVideo({
video: {
url: VIDEO_URL,
},
to: FB_RECIPIENT_ID,
from: FB_SENDER_ID,
}),
)
.then(({ messageUUID}) => console.log(messageUUID))
vonage.messages.send({
messageType: 'video',
channel: Channels.MESSENGER,
video: {
url: MESSAGES_VIDEO_URL,
},
to: MESSENGER_RECIPIENT_ID,
from: MESSENGER_SENDER_ID,
})
.then(({ messageUUID }) => console.log(messageUUID))
.catch((error) => console.error(error));
38 changes: 38 additions & 0 deletions messages/mms/send-mms-audio.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
require('dotenv').config({ path: __dirname + '/../.env' });
const { Vonage } = require('@vonage/server-sdk');
const { Channels } = require('@vonage/messages');

const VONAGE_APPLICATION_ID = process.env.VONAGE_APPLICATION_ID;
const VONAGE_PRIVATE_KEY = process.env.VONAGE_PRIVATE_KEY;
const MESSAGES_TO_NUMBER = process.env.MESSAGES_TO_NUMBER;
const MMS_SEENDER_ID = process.env.MMS_SEENDER_ID;
const MESSAGES_AUDIO_URL = process.env.MESSAGES_AUDIO_URL;
const MESSAGES_API_URL = process.env.MESSAGES_API_URL;

/**
* It is best to send messages using JWT instead of basic auth. If you leave out
* apiKey and apiSecret, the messages SDK will send requests using JWT tokens
*
* @link https://developer.vonage.com/en/messages/technical-details#authentication
*/
const vonage = new Vonage(
{
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
},
{
...(MESSAGES_API_URL ? {apiHost: MESSAGES_API_URL} : {}),
},
);

vonage.messages.send({
messageType: 'audio',
channel: Channels.MMS,
audio:{
url: MESSAGES_AUDIO_URL,
},
to: MESSAGES_TO_NUMBER,
from: MMS_SEENDER_ID,
})
.then(({ messageUUID }) => console.log(messageUUID))
.catch((error) => console.error(error));
Loading

0 comments on commit 39a4898

Please sign in to comment.