Как получить весь контент, опубликованный группой Facebook, используя Graph API
Я очень новичок в Graph API и пытаюсь написать простой скрипт на Python, который сначала идентифицирует все страницы, которые понравились пользователю, и все группы, в которые он входит. Для этого я использовал следующее:
To get the groups he has joined:
API: /{user-id}/groups
Permissions req: user_groups
To get the pages he has liked:
API: /{user-id}/likes
Permissions req: user_likes
and
url='https://graph.facebook.com/'+userId+'/likes?access_token='+accessToken +'&limit='+str(limit)
Теперь, когда я могу видеть идентификаторы групп в выводе JSON, я хочу поразить их одну за другой и извлечь весь контент (посты, комментарии, фотографии и т. Д.), Опубликованные в этой группе. Возможно ли это, и если да, то как я могу это сделать? Какие вызовы API я должен сделать?
3 ответа
Это довольно широкий вопрос, прежде чем спрашивать здесь, вы должны попробовать поискать на SO.
В любом случае, я расскажу вам в общих чертах, как вы можете это сделать.
Прежде всего, ознакомьтесь с официальной документацией Graph API: Справочник по Graph API.
Вы найдете все API, которые можно использовать для извлечения данных. Например: /group
, /page
, Вы узнаете, какой токен доступа и какие разрешения требуются для вызова API.
Вот некоторые вызовы API, полезные для вас:
чтобы получить сообщения группы / страницы-
/{group-id/page-id}/posts
чтобы получить комментарии пост-
{post-id}/comments
получить фотографии группы / страницы-
/{group-id/page-id}/photos
и так далее. Как только вы ознакомитесь с документацией и протестируете некоторые вызовы API, все станет ясно. Это довольно просто!
Надеюсь, поможет. Удачи!
Вот пример использования facepy:
from facepy import GraphAPI
import json
graph = GraphAPI(APP_TOKEN)
groupIDs = ("[id here]","[etc]")
outfile_name ="teacher-groups-summary-export-data.csv"
f = csv.writer(open(outfile_name, "wb+"))
for gID in groupIDs:
groupData = graph.get(gID + "/feed", page=True, retry=3, limit=500)
for data in groupData:
json_data=json.dumps(data, indent = 4,cls=DecimalEncoder)
decoded_response = json_data.decode("UTF-8")
data = json.loads(decoded_response)
print "Paging group data..."
for item in data["data"]:
...etc, dealing with items...
Проверьте ссылку на API. Вы должны использовать корм.
Ты можешь использовать /{group-id}/feed
получить массив объектов Post группы. Не забудьте включить маркер доступа пользователя для члена группы.