Swiftyinsta: 登录停止工作

创建于 2020-07-23  ·  12评论  ·  资料来源: TheM4hd1/SwiftyInsta

使用缓存或通过 LoginWebViewController 进行身份验证失败并显示错误:
" https://i.instagram.com/api/v1/accounts/current_user/。\n无效响应。\n处理处理程序返回nil 。\n405"

最有用的评论

谢谢@alperalb ,我已经更新了2.3.3的代码。\
但是请记住, SwiftyInsta不再被积极维护,所以虽然这是一个简单的修复,但它可能会在未来停止工作。

所有12条评论

将 UsersHandler CurrentUser 方法从 post 更改为 get

func current(delay: ClosedRange<Double>?, completionHandler: <strong i="6">@escaping</strong> (Result<User, Error>) -> Void) { guard let storage = handler.response?.storage else { return completionHandler(.failure(GenericError.custom("Invalid Authentication.Response in APIHandler.respone`。 重新登录。")))
}
// let body = ["_uuid": handler.settings.device.deviceGuid.uuidString,
// "_uid": storage.dsUserId,
// "_csrftoken": storage.csrfToken]

    requests.request(User.self,
                     method: .get,
                     endpoint: Endpoint.Accounts.current,
                     //body: .parameters(body),
                     delay: delay,
                     process: { User(rawResponse: $0.user) },
                     completion: completionHandler)
}`

将 UsersHandler CurrentUser 方法从 post 更改为 get

func current(delay: ClosedRange<Double>?, completionHandler: <strong i="7">@escaping</strong> (Result<User, Error>) -> Void) { guard let storage = handler.response?.storage else { return completionHandler(.failure(GenericError.custom("Invalid Authentication.Response in APIHandler.respone`。 重新登录。")))
}
// let body = ["_uuid": handler.settings.device.deviceGuid.uuidString,
// "_uid": storage.dsUserId,
// "_csrftoken": storage.csrfToken]

    requests.request(User.self,
                     method: .get,
                     endpoint: Endpoint.Accounts.current,
                     //body: .parameters(body),
                     delay: delay,
                     process: { User(rawResponse: $0.user) },
                     completion: completionHandler)
}`

我根据您的解决方案进行了尝试,但似乎不起作用

将 UsersHandler CurrentUser 方法从 post 更改为 get
func current(delay: ClosedRange<Double>?, completionHandler: <strong i="8">@escaping</strong> (Result<User, Error>) -> Void) { guard let storage = handler.response?.storage else { return completionHandler(.failure(GenericError.custom("Invalid Authentication.Response in APIHandler.respone`。 重新登录。")))
}
// let body = ["_uuid": handler.settings.device.deviceGuid.uuidString,
// "_uid": storage.dsUserId,
// "_csrftoken": storage.csrfToken]

    requests.request(User.self,
                     method: .get,
                     endpoint: Endpoint.Accounts.current,
                     //body: .parameters(body),
                     delay: delay,
                     process: { User(rawResponse: $0.user) },
                     completion: completionHandler)
}`

我根据您的解决方案进行了尝试,但似乎不起作用

这个对我有用..
如果您正在使用 pod,您可能需要重新构建项目,首先清理所有 (command-shift-K) 或清理派生数据。
更改的行在 UserHandler.swift 文件中,从第 13 行开始

将 UsersHandler CurrentUser 方法从 post 更改为 get

func current(delay: ClosedRange<Double>?, completionHandler: <strong i="7">@escaping</strong> (Result<User, Error>) -> Void) { guard let storage = handler.response?.storage else { return completionHandler(.failure(GenericError.custom("Invalid Authentication.Response in APIHandler.respone`。 重新登录。")))
}
// let body = ["_uuid": handler.settings.device.deviceGuid.uuidString,
// "_uid": storage.dsUserId,
// "_csrftoken": storage.csrfToken]

    requests.request(User.self,
                     method: .get,
                     endpoint: Endpoint.Accounts.current,
                     //body: .parameters(body),
                     delay: delay,
                     process: { User(rawResponse: $0.user) },
                     completion: completionHandler)
}`

谢谢@alperalb ,为我工作。

将 UsersHandler CurrentUser 方法从 post 更改为 get
func current(delay: ClosedRange<Double>?, completionHandler: <strong i="9">@escaping</strong> (Result<User, Error>) -> Void) { guard let storage = handler.response?.storage else { return completionHandler(.failure(GenericError.custom("Invalid Authentication.Response in APIHandler.respone`。 重新登录。")))
}
// let body = ["_uuid": handler.settings.device.deviceGuid.uuidString,
// "_uid": storage.dsUserId,
// "_csrftoken": storage.csrfToken]

    requests.request(User.self,
                     method: .get,
                     endpoint: Endpoint.Accounts.current,
                     //body: .parameters(body),
                     delay: delay,
                     process: { User(rawResponse: $0.user) },
                     completion: completionHandler)
}`

我根据您的解决方案进行了尝试,但似乎不起作用

这个对我有用..
如果您正在使用 pod,您可能需要重新构建项目,首先清理所有 (command-shift-K) 或清理派生数据。
更改的行在 UserHandler.swift 文件中,从第 13 行开始

谢谢,我清除了派生数据,它可以正常工作。

谢谢@alperalb ,我已经更新了2.3.3的代码。\
但是请记住, SwiftyInsta不再被积极维护,所以虽然这是一个简单的修复,但它可能会在未来停止工作。

感谢您的快速更新。 令人遗憾的是,它没有得到积极维护,恕我直言,它是目前最好的 swift Instagram 框架,让它消亡将是一种浪费。

@sbertix乐于帮助维护。 公告在哪里?

不得不使用pod 'SwiftyInsta', :git => 'https://github.com/TheM4hd1/SwiftyInsta', :branch => 'master'

@sbertix是发布标记吗?

感谢您的快速更新。 令人遗憾的是,它没有得到积极维护,恕我直言,它是目前最好的 swift Instagram 框架,让它消亡将是一种浪费。

当前的实现有太多“问题”,需要一个完全干净的石板@biox86

当我编写SwiftyInsta 2.0 ,我以某种方式这样做,因此它仍然是原始实现的“真实”,这基本上是一个移植。

从那时起,Swift 发生了很大变化,许多功能根本无法添加到代码库中,例如取消请求、身份验证响应的多存储支持、有效的用户名和密码身份验证、组合支持、自定义身份验证等。

因此,我使用现代 Swift 开始了一个新项目Swiftagram ,它更易于使用并且能够解决上述所有问题。 从头开始确实是必要的。

@sbertix乐于帮助维护。 公告在哪里?

没有官方公告。 当有新的问题出现时,我会每隔一段时间提醒人们。

当我在Swiftagram 上工作时,我仍然会修复关键问题(比如这个),但我不会在这里推送新功能或增强功能(例如我不会移植Swiftagram BasicAuthenticator用于基于非 Web 视图的有效登录或其组合功能)。

如果您对SwiftyInsta进行了投资,并希望通过 PR 做出贡献并保持其活跃,那么我们非常欢迎您@mycroftcanner

不得不使用pod 'SwiftyInsta', :git => 'https://github.com/TheM4hd1/SwiftyInsta', :branch => 'master'

@sbertix是发布标记吗?

是的。 所有标记和 pod 版本都更新了......🤔
我不确定它为什么会那样做。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

canaksoy picture canaksoy  ·  6评论

effecttwins picture effecttwins  ·  16评论

reefer picture reefer  ·  18评论

trentona picture trentona  ·  3评论

sbertix picture sbertix  ·  3评论