/**
* Social Media Platform Configuration
*
* This module contains OAuth configuration settings for all supported social media platforms.
* Each platform configuration includes client credentials, OAuth URLs, scopes, and API endpoints.
*
* @author Ignas Panavas
* @version 1.0.0
*/
require('dotenv').config();
/**
* Social Media Platform Configurations
*
* Contains OAuth and API configuration for supported social media platforms:
* - Instagram Business API
* - TikTok for Business API
* - YouTube Data API v3
* - Facebook Graph API
* - Snapchat Kit API
*
* Each platform configuration includes:
* - OAuth client credentials (from environment variables)
* - Authorization and token URLs
* - Required OAuth scopes
* - API base URLs for data fetching
*
* @type {Object}
* @property {Object} instagram - Instagram Business API configuration
* @property {Object} tiktok - TikTok for Business API configuration
* @property {Object} youtube - YouTube Data API v3 configuration
* @property {Object} facebook - Facebook Graph API configuration
* @property {Object} snapchat - Snapchat Kit API configuration
*/
const socialConfigs = {
/** Instagram Business API Configuration */
instagram: {
clientId: process.env.INSTAGRAM_CLIENT_ID,
clientSecret: process.env.INSTAGRAM_CLIENT_SECRET,
redirectUri: process.env.INSTAGRAM_REDIRECT_URI,
scope: 'instagram_business_basic,instagram_business_manage_messages,instagram_business_manage_comments,instagram_business_content_publish',
authUrl: 'https://www.instagram.com/oauth/authorize',
tokenUrl: 'https://api.instagram.com/oauth/access_token',
apiBaseUrl: 'https://graph.instagram.com'
},
/** TikTok for Business API Configuration */
tiktok: {
clientId: process.env.TIKTOK_CLIENT_ID,
clientSecret: process.env.TIKTOK_CLIENT_SECRET,
redirectUri: process.env.TIKTOK_REDIRECT_URI,
scope: process.env.TIKTOK_SCOPE || 'user.info.basic',
authUrl: 'https://www.tiktok.com/v2/auth/authorize/',
tokenUrl: 'https://open.tiktokapis.com/v2/oauth/token/',
apiBaseUrl: 'https://open.tiktokapis.com'
},
/** YouTube Data API v3 Configuration */
youtube: {
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
redirectUri: process.env.YOUTUBE_REDIRECT_URI,
scope: 'https://www.googleapis.com/auth/youtube.readonly',
authUrl: 'https://accounts.google.com/o/oauth2/v2/auth',
tokenUrl: 'https://oauth2.googleapis.com/token',
apiBaseUrl: 'https://www.googleapis.com/youtube/v3'
},
/** Facebook Graph API Configuration */
facebook: {
clientId: process.env.FACEBOOK_CLIENT_ID,
clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
redirectUri: process.env.FACEBOOK_REDIRECT_URI,
scope: 'pages_read_engagement,pages_show_list',
authUrl: 'https://www.facebook.com/v18.0/dialog/oauth',
tokenUrl: 'https://graph.facebook.com/v18.0/oauth/access_token',
apiBaseUrl: 'https://graph.facebook.com/v18.0'
},
/** Snapchat Kit API Configuration */
snapchat: {
clientId: process.env.SNAPCHAT_CLIENT_ID,
clientSecret: process.env.SNAPCHAT_CLIENT_SECRET,
redirectUri: process.env.SNAPCHAT_REDIRECT_URI,
scope: 'user.display_name,user.bitmoji.avatar',
authUrl: 'https://accounts.snapchat.com/login/oauth2/authorize',
tokenUrl: 'https://accounts.snapchat.com/login/oauth2/access_token',
apiBaseUrl: 'https://kit.snapchat.com/v1'
}
};
module.exports = socialConfigs;
Source