| id | ailey-soc-facebook |
| name | Facebook Integration Manager |
| description | Comprehensive Facebook integration for personal and business features via Graph API. Manage posts, photos, friends, groups, events, pages, ads, analytics, Instagram, leads, and messenger. Use when posting to Facebook, managing business pages, running ad campaigns, analyzing social media performance, or integrating Facebook/Instagram into workflows. |
| keywords | ["facebook","graph-api","social-media","instagram","whatsapp","advertising","marketing","analytics","messenger","business-pages","lead-generation"] |
| tools | ["axios","commander","handlebars","form-data","csv-parse"] |
| agent | AI-ley Orchestrator |
| skills | [] |
AI-ley Facebook Integration Manager
Comprehensive Facebook and Instagram integration supporting both personal and business features through the Facebook Graph API.
When to Use This Skill
- Publishing content to Facebook and Instagram
- Managing Facebook business pages and engagement
- Creating and managing ad campaigns
- Analyzing page and ad performance
- Generating and retrieving leads from lead ads
- Cross-posting to Instagram Business accounts
- Managing Messenger conversations
- Automating social media workflows
- Exporting analytics and insights
Installation
cd .github/skills/ailey-soc-facebook
npm install
Setup
See SETUP.md for detailed setup instructions including:
- Creating a Facebook App
- OAuth 2.0 authentication
- Required permissions for personal vs business features
- Getting access tokens (short-lived, long-lived, never-expiring page tokens)
- Environment configuration
Quick setup:
npm run facebook setup
Features
Personal Features
- Profile: View and manage user profile
- Posts: Create, schedule posts on timeline
- Photos: Upload photos to timeline or albums
- Friends: List and manage friends
- Groups: List groups, post to groups
- Events: List events, create events, RSVP
Business Features
- Pages: List managed pages, publish content, schedule posts
- Lead Generation: List lead forms, retrieve leads, export to CSV
- Instagram Business: Link accounts, publish posts, get insights
- Messenger: Send messages, list conversations, automate responses
- Analytics: Page insights, post performance, audience demographics
Advertising Features
- Ad Accounts: List and manage ad accounts
- Campaigns: Create campaigns, set budgets, manage status
- Performance: Get campaign insights, track ROI, export reports
Workflows
Workflow 1: Personal Content Publishing
Publish content to your personal Facebook timeline.
Use Cases:
- Share updates, links, photos to personal timeline
- Schedule posts for future publication
- Upload photo albums with captions
- Post to groups you belong to
CLI Usage:
npm run facebook personal profile show
npm run facebook personal posts create \\
--message "Just launched my new project!"
npm run facebook personal posts create \\
--message "Check out my latest article" \\
--link "https://example.com/article"
npm run facebook personal posts create \\
--message "Happy New Year!" \\
--schedule "2026-01-01T00:00:00Z"
npm run facebook personal photos upload path/to/photo.jpg \\
--message "Beautiful sunset today"
npm run facebook personal groups post GROUP_ID \\
--message "Great news to share!" \\
--link "https://example.com"
npm run facebook personal friends list --limit 50
npm run facebook personal groups list
npm run facebook personal events list
npm run facebook personal events create \\
--name "Team Meeting" \\
--start-time "2026-02-15T14:00:00Z" \\
--description "Monthly team sync" \\
--location "Conference Room A"
TypeScript API:
import { FacebookClient, loadConfig } from './scripts/facebook-client.js';
const config = loadConfig();
const client = new FacebookClient(config);
const post = await client.createPost({
message: "Hello from TypeScript!",
link: "https://example.com",
published: true
});
const photo = await client.uploadPhoto(
'path/to/photo.jpg',
'Check this out!'
);
const groupPost = await client.postToGroup(
'group-id',
'Exciting news!',
'https://example.com/news'
);
const friends = await client.getFriends('me', 100);
const groups = await client.getGroups('me');
const event = await client.createEvent(
'Team Meeting',
new Date('2026-02-15T14:00:00Z'),
'Monthly sync meeting',
'Conference Room A'
);
Workflow 2: Business Page Management
Manage Facebook business pages, publish content, and engage with audience.
Use Cases:
- Publish updates to business pages
- Schedule content calendar
- Monitor page engagement
- Respond to customer messages
- Track page performance
CLI Usage:
npm run facebook business pages list
npm run facebook business pages publish PAGE_ID \\
--message "New product launch!" \\
--link "https://example.com/products/new"
npm run facebook business pages publish PAGE_ID \\
--message "Flash sale starts tomorrow!" \\
--schedule "2026-02-01T09:00:00Z"
npm run facebook business pages posts PAGE_ID --limit 25
npm run facebook business leads forms PAGE_ID
npm run facebook business leads get FORM_ID \\
--output leads-export.csv
npm run facebook business messenger send RECIPIENT_ID \\
--message "Thanks for your inquiry!"
npm run facebook business messenger conversations PAGE_ID
npm run facebook business instagram account PAGE_ID
npm run facebook business instagram publish INSTAGRAM_ACCOUNT_ID \\
--image-url "https://example.com/image.jpg" \\
--caption "New product available now! #launch"
npm run facebook business instagram insights INSTAGRAM_ACCOUNT_ID \\
--metrics "impressions,reach,profile_views"
TypeScript API:
import { FacebookClient, loadConfig } from './scripts/facebook-client.js';
const config = loadConfig();
const client = new FacebookClient(config);
const pages = await client.getPages();
const pagePost = await client.publishToPage('page-id', {
message: "Check out our new product!",
link: "https://example.com/products",
published: true
});
const scheduledPost = await client.publishToPage('page-id', {
message: "Tomorrow's announcement",
scheduled: new Date('2026-02-01T10:00:00Z')
});
const posts = await client.getPagePosts('page-id', 25);
const leadForms = await client.getLeadForms('page-id');
const leads = await client.getLeads('form-id');
const igAccount = await client.getInstagramAccount('page-id');
const igPost = await client.publishToInstagram(
'instagram-account-id',
'https://example.com/image.jpg',
'New product launch! #launch'
);
const message = await client.sendMessage(
'recipient-id',
'Thanks for reaching out!'
);
const conversations = await client.getConversations('page-id');
Workflow 3: Advertising and Campaign Management
Create and manage Facebook ad campaigns, track performance, optimize ROI.
Use Cases:
- Launch advertising campaigns
- Manage campaign budgets and scheduling
- Track ad performance and ROI
- A/B test ad creatives
- Export campaign data for analysis
CLI Usage:
npm run facebook ads accounts list
npm run facebook ads campaigns list AD_ACCOUNT_ID --limit 50
npm run facebook ads campaigns create AD_ACCOUNT_ID \\
--name "Q1 2026 Product Launch" \\
--objective "OUTCOME_TRAFFIC" \\
--status "PAUSED" \\
--daily-budget 5000 \\
--bid-strategy "LOWEST_COST_WITHOUT_CAP"
npm run facebook ads campaigns insights CAMPAIGN_ID \\
--fields "impressions,clicks,spend,reach,ctr,cpc,conversions"
TypeScript API:
import { FacebookClient, loadConfig } from './scripts/facebook-client.js';
const config = loadConfig();
const client = new FacebookClient(config);
const adAccounts = await client.getAdAccounts();
const campaign = await client.createCampaign('ad-account-id', {
name: 'Q1 2026 Product Launch',
objective: 'OUTCOME_TRAFFIC',
status: 'PAUSED',
dailyBudget: 5000,
bidStrategy: 'LOWEST_COST_WITHOUT_CAP'
});
const campaigns = await client.getCampaigns('ad-account-id', 50);
const insights = await client.getCampaignInsights('campaign-id', [
'impressions',
'clicks',
'spend',
'reach',
'ctr',
'cpc',
'cpp',
'conversions',
'cost_per_conversion'
]);
Workflow 4: Analytics and Insights
Analyze page performance, audience engagement, and campaign effectiveness.
Use Cases:
- Track page growth and engagement
- Analyze post performance
- Export analytics reports
- Monitor audience demographics
- Measure campaign ROI
CLI Usage:
npm run facebook analytics page insights PAGE_ID \\
--metrics "page_impressions,page_engaged_users,page_post_engagements" \\
--period "day" \\
--since "2026-01-01" \\
--until "2026-01-31" \\
--output january-insights.json
npm run facebook analytics page summary PAGE_ID --days 30
npm run facebook analytics post performance PAGE_ID \\
--limit 20 \\
--output post-performance.csv
npm run facebook analytics metrics
TypeScript API:
import { FacebookClient, loadConfig } from './scripts/facebook-client.js';
const config = loadConfig();
const client = new FacebookClient(config);
const insights = await client.getPageInsights('page-id', {
metric: [
'page_impressions',
'page_impressions_unique',
'page_engaged_users',
'page_post_engagements',
'page_fans'
],
period: 'day',
since: '2026-01-01',
until: '2026-01-31'
});
const posts = await client.getPagePosts('page-id', 50);
const igInsights = await client.getInstagramInsights(
'instagram-account-id',
['impressions', 'reach', 'profile_views', 'engagement']
);
Environment Configuration
Create .env file in the skill directory or ~/.vscode/.env:
FACEBOOK_ACCESS_TOKEN=your_access_token_here
FACEBOOK_API_VERSION=v18.0
FACEBOOK_PAGE_ID=your_page_id
FACEBOOK_USER_ID=me
FACEBOOK_AD_ACCOUNT_ID=act_your_ad_account_id
Authentication
Short-Lived Token (Testing - 1 hour)
Use Graph API Explorer at https://developers.facebook.com/tools/explorer/
Long-Lived Token (Production - 60 days)
npm run facebook auth exchange \\
--app-id YOUR_APP_ID \\
--app-secret YOUR_APP_SECRET \\
--token SHORT_LIVED_TOKEN
Never-Expiring Page Token (Business Features)
npm run facebook auth page-token --page-id YOUR_PAGE_ID
Testing
npm run facebook test
npm run facebook setup
Permissions Reference
Personal Features
email: User email address
public_profile: Basic profile
user_posts: Read/publish posts
user_photos: Manage photos
user_friends: Friends list
user_events: Manage events
publish_to_groups: Post to groups
Business Features - Pages
pages_show_list: List managed pages
pages_read_engagement: Page insights
pages_manage_posts: Publish to pages
pages_manage_engagement: Comments/messages
pages_read_user_content: User content
Business Features - Advertising
ads_read: Read ad data
ads_management: Create/manage ads
business_management: Business assets
Business Features - Instagram
instagram_basic: Access account
instagram_content_publish: Publish posts
pages_read_engagement: Instagram insights
Business Features - Leads
leads_retrieval: Retrieve leads
pages_manage_metadata: Manage forms
Available Metrics
Page Metrics
page_impressions: Total impressions
page_impressions_unique: Unique reach
page_engaged_users: Engagement
page_post_engagements: Post interactions
page_fans: Total likes
page_video_views: Video views
Ad Metrics
impressions: Ad impressions
clicks: Ad clicks
spend: Total spend
reach: Unique reach
ctr: Click-through rate
cpc: Cost per click
conversions: Total conversions
cost_per_conversion: Cost per conversion
Instagram Metrics
impressions: Total impressions
reach: Unique reach
profile_views: Profile views
engagement: Total engagement
Troubleshooting
Invalid OAuth access token
- Check token hasn't expired
- Verify in Graph API Explorer
- Exchange for long-lived token
Permissions error
- Review required permissions
- Regenerate token with correct scopes
- Submit for app review if needed
Rate limit exceeded
- Wait before retrying
- Implement exponential backoff
- Spread requests over time
Resources
version: 1.0.0
updated: 2026-01-31
reviewed: 2026-01-31
score: 4.7