在所有有趣的Facebook专辑中获取最新N张照片列表的最佳方法?

时间:2017-06-06 09:12:21

标签: python facebook-graph-api

我已将这段代码放在一起,以便从给定的Facebook帐户(fb_id)中获取最后MAX_PHOTOS的数据,不包括EXCLUDED_ALBUM_TYPES中的数据。我想我现在已经完成了这个图谱API ...除非有人能想出更好的方法吗?

# itertools.chain, with parse_datetime from Django

def get_facebook_photos(self, fb_id):
    EXCLUDED_ALBUM_TYPES = ['profile', 'cover', 'wall', ]
    MAX_PHOTOS = 20
    albums = fb_client.get_object('{}/albums?fields=id,type'.format(fb_id)).get('data', [])
    photos = []
    album_ids = [a['id'] for a in albums if a['type'] not in EXCLUDED_ALBUM_TYPES]
    # No prefix for this path.
    photos_path = '/photos?ids={}&fields=source,link,created_time.order(reverse_chronological)'.format(
        ','.join(album_ids))
    photos_data = chain.from_iterable(photos['data'] for photos in fb_client.get_object(photos_path).values())
    for i, photo in enumerate(photos_data):
        if i == MAX_PHOTOS:
            break
        photos.append({
            'src': photo['source'],
            'link': photo['link'],
            'time': parse_datetime(photo['created_time'])
        })

    return photos

我想我可以尝试限制检索到的专辑数量。 limit查询字符串中的photos_path设置了每张相册中照片项数量的限制,这不是我想要的。现在我依赖于性能的默认响应分页,为收集的图像使用Django模板片段缓存(它们显示在轮播中)。不可否认,所有这一切都让我想知道为什么不能简单地在JS的前端进行...

0 个答案:

没有答案