# SETUP GUIDE — Facebook Page auto-posting Is guide mein aap `FB_PAGE_ID` aur `FB_PAGE_ACCESS_TOKEN` banayenge. Ye do cheezein bot ko aapke Page par post karne ki permission deti hain. > **Note:** Aap apne hi Page ke admin hain, isliye app ko **Development mode** mein > rakh kar bhi post kar sakte hain — App Review ki zaroorat nahi (jab tak sirf aap > aur aapke app roles waale log use kar rahe hain). --- ## Part A — Facebook Developer App banao 1. Jao: https://developers.facebook.com → right-top **My Apps** → **Create App**. 2. "What do you want to do?" → **Other** chunein → Next. 3. App type → **Business** chunein → Next. 4. App ka naam daalein (jaise "My Auto Poster") → Create App. 5. App ban jaane par **App Settings → Basic** kholo. Yahan **App ID** aur **App Secret** note kar lo — aage kaam aayenge. --- ## Part B — Access token generate karo (Graph API Explorer) 1. Kholo: https://developers.facebook.com/tools/explorer 2. Top-right **Meta App** dropdown mein apna naya app select karo. 3. **Permissions** mein ye add karo (ek-ek karke search karke tick karein): - `pages_show_list` - `pages_manage_posts` - `pages_read_engagement` - `pages_manage_metadata` - `business_management` - `public_profile` 4. **Generate Access Token** dabao → Facebook login window aayega → apne Page waale account se allow karo. 5. Ab Explorer mein token ban gaya hai (ye **short-lived User token** hai, ~1 ghante). --- ## Part C — Page ID aur Page token nikaalo Explorer mein method `GET` rakho aur path likho: ``` me/accounts ``` **Submit** dabao. Response aisa dikhega: ```json { "data": [ { "name": "Aapke Page ka naam", "id": "123456789012345", "access_token": "EAAG...page-token..." } ] } ``` - `id` → ye aapka **FB_PAGE_ID** hai (jis page par post karna hai). - `access_token` → ye **Page access token** hai (abhi short-lived). --- ## Part D — Token ko long-lived banao (zaroori!) Short-lived token ~1 ghante mein expire ho jaata hai. Isko **long-lived** banayein: ### D1. User token ko long-lived karo Explorer mein ya browser mein ye URL chalao (values apni daalein): ``` https://graph.facebook.com/v21.0/oauth/access_token?grant_type=fb_exchange_token&client_id={APP_ID}&client_secret={APP_SECRET}&fb_exchange_token={SHORT_USER_TOKEN} ``` Response mein `access_token` milega — ye **long-lived User token** hai (~60 din). ### D2. Long-lived Page token lo Ab Explorer mein (ya browser mein) is **long-lived User token** ke saath dobara: ``` me/accounts?access_token={LONG_LIVED_USER_TOKEN} ``` Is baar jo `access_token` milega wo **long-lived Page token** hai — practically kabhi expire nahi hota (jab tak aap admin rahein aur user token valid rahe). **Yahi value `FB_PAGE_ACCESS_TOKEN` mein daalein.** > Tip: token ki validity check karne ke liye **Access Token Debugger** use karo: > https://developers.facebook.com/tools/debug/accesstoken/ --- ## Part E — Hugging Face token (image generation ke liye) 1. Jao: https://huggingface.co/settings/tokens → **New token**. 2. Type: **Read** (ya Fine-grained mein "Make calls to Inference Providers" on karein). 3. Copy karke `HF_TOKEN` mein daalein. --- ## Part F — Sab kuch test karo (optional, terminal se) Page info check: ```bash curl "https://graph.facebook.com/v21.0/{FB_PAGE_ID}?fields=name,fan_count&access_token={FB_PAGE_ACCESS_TOKEN}" ``` Ek test photo post (kisi public image URL se): ```bash curl -X POST "https://graph.facebook.com/v21.0/{FB_PAGE_ID}/photos" \ -d "message=Test post from bot" \ -d "url=https://picsum.photos/1024" \ -d "access_token={FB_PAGE_ACCESS_TOKEN}" ``` Agar `{"id": "..."}` aata hai to sab theek hai — token kaam kar raha hai. --- ## Common problems | Problem | Wajah / Fix | |---|---| | `OAuthException: (#200) Permissions error` | Token mein `pages_manage_posts` permission nahi hai — Part B dobara karein | | `Error validating access token: expired` | Short-lived token use hua — Part D follow karein (long-lived banao) | | `(#190) This may be because the user logged out` | User token invalid — dobara login karke naya token banao | | Post page par nahi dikh raha | Confirm karein `FB_PAGE_ID` sahi page ka hai (Part C) | | Image post fail, text chal raha | Image URL/bytes theek nahi — bot disk se file bhejta hai, isliye `generated_images/` folder check karein | --- ## Security - `FB_PAGE_ACCESS_TOKEN` ko kabhi code ya public repo mein na daalein. - Sirf **Space Secrets** (ya environment variables) mein rakhein. - Token leak ho jaaye to Explorer/App dashboard se **revoke** karein aur naya banayein.