Facebook Graph API是Facebook提供的官方接口,允许开发者以编程方式访问Facebook平台的数据和功能。通过这个API,你可以获取、创建、更新和删除Facebook上的各种数据,包括照片。
是的,你可以通过Facebook Graph API下载你在Facebook上的所有照片,但有一些限制和注意事项。
首先,你需要获取以下权限:
user_photos
- 访问用户照片的基本权限user_posts
- 如果需要访问帖子中的照片你需要获取一个有效的访问令牌(access token),可以通过Facebook开发者平台创建应用并获取。
主要使用的API端点是:
/me/photos
- 获取用户上传的照片/me/albums
- 获取用户的相册列表/me/posts
- 获取用户的帖子(包含照片)import requests
import os
# 配置
ACCESS_TOKEN = 'your_access_token'
OUTPUT_DIR = 'facebook_photos'
# 创建输出目录
if not os.path.exists(OUTPUT_DIR):
os.makedirs(OUTPUT_DIR)
def download_photos():
# 获取相册列表
albums_url = f'https://graph.facebook.com/v12.0/me/albums?access_token={ACCESS_TOKEN}'
albums_response = requests.get(albums_url)
albums_data = albums_response.json()
for album in albums_data.get('data', []):
album_id = album['id']
album_name = album['name']
# 获取相册中的照片
photos_url = f'https://graph.facebook.com/v12.0/{album_id}/photos?fields=images&access_token={ACCESS_TOKEN}'
photos_response = requests.get(photos_url)
photos_data = photos_response.json()
# 下载照片
for i, photo in enumerate(photos_data.get('data', [])):
# 获取最高分辨率的图片
highest_res = max(photo['images'], key=lambda x: x['width'])
image_url = highest_res['source']
# 下载并保存
image_data = requests.get(image_url).content
filename = f"{OUTPUT_DIR}/{album_name}_{i}.jpg"
with open(filename, 'wb') as f:
f.write(image_data)
print(f"Downloaded: {filename}")
if __name__ == '__main__':
download_photos()
如果API方法太复杂,也可以考虑:
通过以上方法,你应该能够下载你在Facebook上的所有照片。
没有搜到相关的沙龙