首页
/ InstagramPrivateAPI 好友关系管理接口详解

InstagramPrivateAPI 好友关系管理接口详解

2025-07-10 03:06:31作者:范靓好Udolf

概述

本文将深入解析 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: 目标用户ID
  • rank_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 等必要字段。

使用建议

  1. 分页处理:获取关注/粉丝列表时,注意使用 max_id 参数实现分页加载
  2. 错误处理:所有修改类操作都应做好错误处理,特别是网络异常情况
  3. 频率控制:避免短时间内发起大量关注/取消关注请求,可能触发 Instagram 的限制
  4. 数据缓存:考虑对获取的关注/粉丝列表进行本地缓存,减少API调用

总结

InstagramPrivateAPI 的 friendships.py 文件提供了完整的 Instagram 好友关系管理功能,从基础的关注/取消关注,到高级的故事屏蔽、通知管理等一应俱全。通过合理使用这些接口,可以构建出功能丰富的 Instagram 关系管理工具。需要注意的是,这些私有 API 可能随着 Instagram 官方更新而变化,使用时应当关注兼容性问题。