如何利用Python requests模块通过姓名在Facebook Graph API中搜索?
用Python Requests通过姓名搜索Facebook用户(基于Graph API)
首先明确:Facebook Graph API从v2.0版本开始,已经禁用了公开用户搜索功能,你无法直接通过姓名搜索平台上的任意用户。仅能在当前授权用户的好友列表范围内进行姓名匹配搜索,且需要对应的权限授权。
实现步骤
准备工作
- 注册Facebook开发者账号,创建应用并完成应用审核(需申请
user_friends权限,若要获取邮箱这类额外字段,还需user_email等权限)。 - 获取有效的用户授权
access_token(需用户主动授权你的应用访问其好友列表)。
- 注册Facebook开发者账号,创建应用并完成应用审核(需申请
编写Python Requests代码
以下是搜索指定姓名好友的示例:import requests # 替换为你的有效access_token和要搜索的姓名 ACCESS_TOKEN = "你的用户授权access_token" TARGET_NAME = "John Doe" # Graph API端点(使用最新版本,如v18.0) api_url = "https://graph.facebook.com/v18.0/me/friends" # 请求参数:q为搜索关键词,fields为要获取的用户字段 request_params = { "q": TARGET_NAME, "access_token": ACCESS_TOKEN, "fields": "id,name,profile_pic" # 按需选择字段,需对应权限 } # 发送GET请求 response = requests.get(api_url, params=request_params) result = response.json() # 处理返回结果 if "data" in result and len(result["data"]) > 0: print("找到匹配的好友:") for user in result["data"]: print(f"姓名:{user['name']},ID:{user['id']}") else: error_msg = result.get("error", {"message": "未找到匹配用户或请求无效"}) print(f"搜索失败:{error_msg['message']}")
关键注意事项
- 权限限制:必须持有包含
user_friends的有效access_token,且用户已授权你的应用访问其好友列表。 - 搜索范围:仅能搜索授权用户的好友,无法搜索非好友的公开用户,这是Facebook隐私政策强制要求的。
- API版本:务必使用Facebook当前支持的Graph API版本(可在开发者文档中查看最新版本),旧版本可能已被废弃。
- 字段权限:请求如
email、phone等敏感字段时,需额外申请对应权限并通过审核。
内容的提问来源于stack exchange,提问作者se6
相关产品推荐
相关产品推荐

