Files
x-poster-client/src/x-poster/facebook.api.ts
T
2026-05-11 03:18:19 +00:00

39 lines
1.5 KiB
TypeScript

// src/modules/social/facebook-api.service.ts
import {HttpException, HttpStatus, Injectable} from '@nestjs/common';
import axios from 'axios';
@Injectable()
export class FacebookApi {
private readonly fbBaseUrl = 'https://graph.facebook.com/v19.0';
private readonly pageAccessToken = process.env.FB_PAGE_ACCESS_TOKEN;
private readonly pageId = process.env.FB_PAGE_ID;
async postToPage(content: string, imageUrl?: string) {
// console.log('postToPage==>', content, imageUrl);
try {
let url = `${this.fbBaseUrl}/${this.pageId}/feed`;
let params: any = {
message: content + `\n Disclaimer: For reference only. AI content may have errors. Not liable for inaccuracies or damages. Verify from official sources.`,
access_token: this.pageAccessToken,
};
// Nếu có ảnh, chúng ta dùng endpoint /photos
if (imageUrl) {
url = `${this.fbBaseUrl}/${this.pageId}/photos`;
params.url = imageUrl;
}
const response = await axios.post(url, params);
//response.data= { id: '1010286162176053_122107818902775551' }
return response.data; // Trả về ID bài viết nếu thành công
} catch (error) {
console.log('Lỗi khi đăng bài lên FB');
console.log(error.message);
throw new HttpException(
error.response?.data || 'Lỗi khi đăng bài lên FB',
HttpStatus.BAD_REQUEST,
);
}
}
}