InstagramPrivateAPI 好友关系管理接口详解
概述
本文将深入解析 InstagramPrivateAPI 中的 friendships.py 文件,该文件实现了 Instagram 好友关系管理的核心功能。作为 Instagram 私有 API 的一部分,它提供了完整的用户关系管理能力,包括关注/取消关注、获取粉丝列表、处理好友请求等操作。
核心功能模块
1. 用户列表自动补全
autocomplete_user_list()
方法提供了一个智能的用户列表补全功能,可用于搜索或提及用户时的自动补全场景:
def autocomplete_user_list(self):
res = self._call_api(
'friendships/autocomplete_user_list/',
query={'followinfo': 'True', 'version': '2'})
if self.auto_patch:
[ClientCompatPatch.list_user(user, drop_incompat_keys=self.drop_incompat_keys)
for user in res['users']]
return res
该方法返回的列表中包含用户基本信息,并通过 auto_patch
参数决定是否对返回数据进行兼容性处理。
2. 获取关注与粉丝列表
获取用户关注列表
user_following()
方法用于获取指定用户关注的用户列表:
def user_following(self, user_id, rank_token, **kwargs):
raise_if_invalid_rank_token(rank_token)
endpoint = 'friendships/{user_id!s}/following/'.format(**{'user_id': user_id})
# ...
关键参数说明:
user_id
: 目标用户IDrank_token
: 分页令牌,需保持一致性max_id
: 用于分页获取更多结果
获取用户粉丝列表
user_followers()
方法与获取关注列表类似,用于获取用户的粉丝列表:
def user_followers(self, user_id, rank_token, **kwargs):
raise_if_invalid_rank_token(rank_token)
endpoint = 'friendships/{user_id!s}/followers/'.format(**{'user_id': user_id})
# ...
3. 好友关系管理
关注/取消关注用户
def friendships_create(self, user_id): # 关注用户
def friendships_destroy(self, user_id, **kwargs): # 取消关注
这两个方法实现了最基本的关注关系管理功能,返回结果中包含详细的关注状态信息。
好友请求处理
def friendships_pending(self): # 获取待处理的好友请求
def ignore_user(self, user_id): # 忽略好友请求
def remove_follower(self, user_id): # 移除粉丝
4. 用户屏蔽功能
InstagramPrivateAPI 提供了多种屏蔽选项:
def friendships_block(self, user_id): # 屏蔽用户
def friendships_unblock(self, user_id): # 取消屏蔽
def block_friend_reel(self, user_id): # 屏蔽用户查看你的故事
def unblock_friend_reel(self, user_id): # 取消故事屏蔽
def set_reel_block_status(self, user_ids, block_status='block'): # 批量设置故事屏蔽状态
5. 通知管理
def enable_post_notifications(self, user_id): # 开启用户帖子通知
def disable_post_notifications(self, user_id): # 关闭用户帖子通知
技术细节解析
rank_token 的作用
在获取关注/粉丝列表时,rank_token
参数至关重要。它用于保持分页请求的一致性,通常通过 generate_uuid()
方法生成。在处理长列表时,必须使用相同的 rank_token
才能正确分页。
数据兼容性处理
代码中多处使用了 ClientCompatPatch.list_user()
方法对返回的用户数据进行处理,这是为了确保不同版本的 API 返回数据格式一致。通过 auto_patch
参数可以控制是否启用此功能。
认证参数处理
所有修改类操作(关注、屏蔽等)都需要附加认证参数,这些参数通过 self.authenticated_params
自动添加,包括 _uuid
和 _csrftoken
等必要字段。
使用建议
- 分页处理:获取关注/粉丝列表时,注意使用
max_id
参数实现分页加载 - 错误处理:所有修改类操作都应做好错误处理,特别是网络异常情况
- 频率控制:避免短时间内发起大量关注/取消关注请求,可能触发 Instagram 的限制
- 数据缓存:考虑对获取的关注/粉丝列表进行本地缓存,减少API调用
总结
InstagramPrivateAPI 的 friendships.py 文件提供了完整的 Instagram 好友关系管理功能,从基础的关注/取消关注,到高级的故事屏蔽、通知管理等一应俱全。通过合理使用这些接口,可以构建出功能丰富的 Instagram 关系管理工具。需要注意的是,这些私有 API 可能随着 Instagram 官方更新而变化,使用时应当关注兼容性问题。