Как получить весь контент, опубликованный группой 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 группы. Не забудьте включить маркер доступа пользователя для члена группы.

Другие вопросы по тегам