Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: updated messages snippets #174

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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