Spaces:
Paused
Paused
Update func_facebook.py
Browse files- func_facebook.py +23 -1
func_facebook.py
CHANGED
@@ -117,23 +117,45 @@ def get_page_id(page_access_token):
|
|
117 |
|
118 |
def get_posts(page_id, page_access_token):
|
119 |
url = f"{GRAPH_API_URL}/{page_id}/posts"
|
|
|
120 |
params = {
|
121 |
"access_token": page_access_token,
|
122 |
"fields": "id,message"
|
123 |
}
|
|
|
124 |
posts = []
|
|
|
125 |
while True:
|
|
|
126 |
response = requests.get(url, params=params)
|
127 |
data = response.json()
|
|
|
128 |
if 'error' in data:
|
129 |
print(f"Ошибка при получении постов: {data['error']}")
|
130 |
break
|
|
|
|
|
131 |
posts.extend(data.get("data", []))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
if 'paging' in data and 'next' in data['paging']:
|
133 |
url = data['paging']['next']
|
134 |
-
|
|
|
135 |
else:
|
136 |
break
|
|
|
137 |
return posts
|
138 |
|
139 |
|
|
|
117 |
|
118 |
def get_posts(page_id, page_access_token):
|
119 |
url = f"{GRAPH_API_URL}/{page_id}/posts"
|
120 |
+
url_ads = f"{GRAPH_API_URL}/{page_id}/ads_posts?include_inline_create=true"
|
121 |
params = {
|
122 |
"access_token": page_access_token,
|
123 |
"fields": "id,message"
|
124 |
}
|
125 |
+
|
126 |
posts = []
|
127 |
+
|
128 |
while True:
|
129 |
+
# Выполняем запрос для обычных постов
|
130 |
response = requests.get(url, params=params)
|
131 |
data = response.json()
|
132 |
+
|
133 |
if 'error' in data:
|
134 |
print(f"Ошибка при получении постов: {data['error']}")
|
135 |
break
|
136 |
+
|
137 |
+
# Добавляем обычные посты в общий список
|
138 |
posts.extend(data.get("data", []))
|
139 |
+
|
140 |
+
# Обрабатываем посты с рекламы
|
141 |
+
response_ads = requests.get(url_ads, params={"access_token": page_access_token, "fields": "id,message"})
|
142 |
+
data_ads = response_ads.json()
|
143 |
+
|
144 |
+
if 'error' in data_ads:
|
145 |
+
print(f"Ошибка при получении рекламных постов: {data_ads['error']}")
|
146 |
+
break
|
147 |
+
|
148 |
+
# Добавляем рекламные посты в общий список
|
149 |
+
posts.extend(data_ads.get("data", []))
|
150 |
+
|
151 |
+
# Проверяем, есть ли следующие страницы для обычных постов
|
152 |
if 'paging' in data and 'next' in data['paging']:
|
153 |
url = data['paging']['next']
|
154 |
+
# Удаляем параметры, так как они уже в URL
|
155 |
+
params = {}
|
156 |
else:
|
157 |
break
|
158 |
+
|
159 |
return posts
|
160 |
|
161 |
|