Add NestJS Admin Facebook Publishing API with Image Support
This commit is contained in:
@@ -81,19 +81,22 @@ async function generatePostWithGemini(topic = 'منشور تعريفي عن من
|
||||
}
|
||||
|
||||
/**
|
||||
* Publish generated post to Meta Facebook Page
|
||||
* Publish generated post to Meta Facebook Page (supports optional image)
|
||||
*/
|
||||
async function publishToFacebook(message) {
|
||||
async function publishToFacebook(message, imageUrl = null) {
|
||||
console.log(`Publishing generated post to Facebook Page ID: ${META_PAGE_ID}...`);
|
||||
|
||||
const url = `https://graph.facebook.com/v19.0/${META_PAGE_ID}/feed`;
|
||||
const endpoint = imageUrl ? `${META_PAGE_ID}/photos` : `${META_PAGE_ID}/feed`;
|
||||
const url = `https://graph.facebook.com/v19.0/${endpoint}`;
|
||||
|
||||
const payload = imageUrl
|
||||
? { access_token: META_ACCESS_TOKEN, caption: message, url: imageUrl }
|
||||
: { access_token: META_ACCESS_TOKEN, message: message };
|
||||
|
||||
const res = await fetch(url, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
access_token: META_ACCESS_TOKEN,
|
||||
message: message
|
||||
})
|
||||
body: JSON.stringify(payload)
|
||||
});
|
||||
|
||||
const data = await res.json();
|
||||
@@ -107,15 +110,21 @@ async function publishToFacebook(message) {
|
||||
|
||||
async function main() {
|
||||
const topic = process.argv[2] || 'منشور تعريفي عن منصة Tripz ومزايا التملك والشفافية والتوفير وحاسبة الأرباح';
|
||||
const imageUrl = process.argv[3] || null;
|
||||
|
||||
try {
|
||||
const postContent = await generatePostWithGemini(topic);
|
||||
console.log('\n--- Generated Post Content ---\n');
|
||||
console.log(postContent);
|
||||
console.log('\n------------------------------\n');
|
||||
|
||||
const result = await publishToFacebook(postContent);
|
||||
if (imageUrl) {
|
||||
console.log('Attached Image Creative URL:', imageUrl);
|
||||
}
|
||||
|
||||
const result = await publishToFacebook(postContent, imageUrl);
|
||||
console.log('🎉 Post Published Successfully to Facebook!');
|
||||
console.log('Meta Post ID:', result.id);
|
||||
console.log('Meta Post ID:', result.id || result.post_id);
|
||||
} catch (err) {
|
||||
console.error('❌ Error:', err.message);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user