File size: 4,654 Bytes
2988599
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# 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.