pi-facebook
pi.dev extension — manage Facebook Pages via Graph API
Package details
Install pi-facebook from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-facebook- Package
pi-facebook- Version
0.1.1- Published
- Jul 5, 2026
- Downloads
- 315/mo · 10/wk
- Author
- sutin1234
- License
- unknown
- Types
- extension
- Size
- 59.3 KB
- Dependencies
- 1 dependency · 2 peers
Pi manifest JSON
{
"extensions": [
".pi/extensions/pi-facebook.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-facebook
Production-ready starter for connecting Pi.dev agents to the Facebook Graph API.
Features
| Feature | Method | Status |
|---|---|---|
| Post text | FacebookClient.postText() |
✅ |
| Post photo | FacebookClient.postPhoto() |
✅ |
| Delete post | FacebookClient.deletePost() |
✅ |
| List posts | FacebookClient.listPosts() |
✅ |
| Get insights | FacebookClient.getInsights() |
✅ |
Environment Variables
FACEBOOK_PAGE_ID=your_page_id
FACEBOOK_PAGE_TOKEN=your_page_access_token
FACEBOOK_GRAPH_VERSION=v24.0
Note: The Graph API version defaults to
v24.0and can be overridden viaFACEBOOK_GRAPH_VERSION.
Usage
Post Text
import { FacebookClient } from './src/facebook.js';
const client = new FacebookClient(PAGE_ID, TOKEN);
const result = await client.postText('Hello from pi-facebook!');
// { id: "123456789_987654321" }
Post Photo
import { FacebookClient } from './src/facebook.js';
const client = new FacebookClient(PAGE_ID, TOKEN);
const result = await client.postPhoto({
url: 'https://example.com/photo.jpg',
message: 'Check out this photo!', // optional
});
// { id: "123456789_987654321" }
Delete Post
import { FacebookClient } from './src/facebook.js';
const client = new FacebookClient(PAGE_ID, TOKEN);
const result = await client.deletePost('{pageId}_{postId}');
// { success: true }
List Posts
import { FacebookClient } from './src/facebook.js';
const client = new FacebookClient(PAGE_ID, TOKEN);
const posts = await client.listPosts(5); // limit optional (default 10)
// { data: [...], paging: { ... } }
Get Insights
import { FacebookClient } from './src/facebook.js';
const client = new FacebookClient(PAGE_ID, TOKEN);
const insights = await client.getInsights(
'page_impressions,page_engaged_users',
'day', // 'day' | 'week' | 'days_28' | 'month' | 'lifetime'
);
// { data: [...], paging: { ... } }
AI Prompt Examples (สำหรับ Pi Agent)
หลังจากติดตั้ง pi-facebook แล้ว เพียงแค่พิมพ์บอก Pi ด้วยภาษาธรรมชาติ:
# โพสต์ข้อความ
"โพสต์ข้อความ 'hello world' ไปที่ Facebook Page"
"แคปชั่นเก๋ๆ เกี่ยวกับกาแฟหน่อย"
# โพสต์รูป
"โพสต์รูปนี้ไปที่ Facebook Page พร้อมแคปชั่น"
"แชร์รูปโปรโมทสินค้าลงเพจ"
# ลบโพสต์
"ลบโพสต์ล่าสุด"
"ลบโพสต์ id xxx"
# ดูโพสต์
"แสดง 5 โพสต์ล่าสุดบนเพจ"
"มีอะไรใหม่บนเพจบ้าง"
# ดู Insights
"ยอด reach เมื่อวานเท่าไหร่"
"แสดง engagement 7 วันที่ผ่านมา"
"สถิติเพจเดือนนี้"
Pi จะเลือกใช้ tool ที่เหมาะสมให้อัตโนมัติ!
Tool Wrappers (for Pi Agent MCP)
Each feature also exposes a standalone tool function for Pi agent invocation:
import { facebook_post_text } from './src/tools/postText.js';
import { facebook_post_photo } from './src/tools/postPhoto.js';
import { facebook_delete_post } from './src/tools/deletePost.js';
import { facebook_list_posts } from './src/tools/listPosts.js';
import { facebook_get_insights } from './src/tools/getInsights.js';
await facebook_post_text(PAGE_ID, TOKEN, 'Hello!');
await facebook_post_photo(PAGE_ID, TOKEN, 'https://...', 'Optional caption');
await facebook_delete_post(PAGE_ID, TOKEN, '{pageId}_{postId}');
await facebook_list_posts(PAGE_ID, TOKEN, 10);
await facebook_get_insights(PAGE_ID, TOKEN, 'page_impressions', 'day');
Architecture
Scheduler → AI Agent → pi-facebook → Facebook Graph API → Facebook Page
Project Structure
pi-facebook/
├── README.md
├── package.json
├── tsconfig.json
├── docs/
│ └── architecture.md
└── src/
├── facebook.ts # FacebookClient (core)
└── tools/
├── postText.ts
├── postPhoto.ts
├── deletePost.ts
├── listPosts.ts
└── getInsights.ts
Development
npm install # install dependencies
npm test # run vitest tests
npm run build # tsc compile