You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用SwiftInstagram 1.0.6获取Instagram粉丝列表时遇端点停用错误

解决Instagram获取粉丝列表时的"This endpoint has been retired"错误

你遇到的这个错误本质很明确:你用的SwiftInstagram 1.0.6版本调用的旧版Instagram REST API端点已经被官方彻底废弃了,Instagram现在已经完成了API体系的迭代,旧的用户粉丝列表接口早就停止服务了。下面给你具体的解决思路和方案:

一、先搞清楚核心限制

首先要明确:Instagram现在对粉丝列表的获取权限有严格的区分:

  • 普通个人用户:出于隐私政策要求,第三方应用完全无法获取个人用户的粉丝/关注列表,这个是平台强制限制,没有绕过的可能。
  • 认证的业务账户/创作者账户:只能通过Instagram Graph API(整合在Facebook开发者平台下)来获取粉丝数据,且需要申请对应的权限。

二、具体解决步骤

1. 检查你的应用类型与权限

如果你的应用是面向业务/创作者用户,需要先完成以下操作:

  • 在Facebook开发者平台注册你的应用,并关联Instagram业务账户。
  • 申请并通过审核必要的权限:比如instagram_basicinstagram_manage_insightspages_show_list等(具体权限根据你的需求调整)。
  • 获取符合要求的长期access_token(Graph API的令牌机制和旧REST API完全不同)。

2. 替换旧的第三方库或手动调用新API

SwiftInstagram 1.0.6是基于旧REST API开发的,已经完全不适配当前的API规范,你有两个选择:

  • 查看SwiftInstagram的最新版本,如果有更新到支持Graph API的版本,可以升级后按照新的文档调整代码。
  • 放弃第三方库,手动通过URLSession调用Graph API,下面是一个简单的示例代码:
func fetchBusinessAccountFollowers(instagramUserId: String, accessToken: String, completion: @escaping (Result<[String: Any], Error>) -> Void) {
    // 构建Graph API请求URL,这里用v18.0(截至2024年的最新稳定版)
    guard let url = URL(string: "https://graph.facebook.com/v18.0/\(instagramUserId)/followers?access_token=\(accessToken)&fields=id,username,profile_picture_url") else {
        completion(.failure(NSError(domain: "InvalidRequest", code: -1, userInfo: [NSLocalizedDescriptionKey: "无效的请求URL"])))
        return
    }
    
    let task = URLSession.shared.dataTask(with: url) { data, response, error in
        if let error = error {
            completion(.failure(error))
            return
        }
        
        guard let data = data else {
            completion(.failure(NSError(domain: "EmptyData", code: -2, userInfo: [NSLocalizedDescriptionKey: "未获取到返回数据"])))
            return
        }
        
        do {
            let responseJSON = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
            completion(.success(responseJSON ?? [:]))
        } catch {
            completion(.failure(error))
        }
    }
    task.resume()
}

3. 面向个人用户的应对方案

如果你的应用是服务普通个人用户,那么只能调整功能设计:

  • 移除获取粉丝列表的功能,避免触发无效请求。
  • 引导用户将个人账号转为业务/创作者账号,再使用相关功能(但需要用户自愿操作)。

三、额外注意事项

  • Graph API的版本会定期更新,要确保使用当前的稳定版本(比如v18.0及以上),旧版本的Graph API端点也会被逐步废弃。
  • 长期access_token需要定期刷新,否则会失效,要在代码中处理令牌刷新逻辑。
  • 所有权限都需要通过Facebook开发者平台的应用审核才能正式使用,测试阶段可以用测试账户进行验证。

内容的提问来源于stack exchange,提问作者Pramod More

火山引擎 最新活动