Мое приложение Voicepaper имеет функцию извлечения элементов из Pocket, и еще несколько дней назад оно работало нормально с помощью Pocket API.
Даже сейчас аутентификация процесс работает нормально, и я не менял никакого кода.
Однако, начиная с нескольких дней назад, при попытке получить элементы из Pocket ответа не было.
Весьма вероятно, что существует проблема на стороне API Pocket. Есть ли у кого-нибудь такая же проблема?
Кстати, даже пользователи, которые все еще используют iOS 17, сталкиваются с той же проблемой.
Вот SDK, который я использовал, до недавнего времени он работал нормально:
https://github.com/Pocket/Pocket-ObjC-SDK
PS:
Я уже обращался в службу поддержки Pocket и Pocket API, и они сказали, что поддержки API больше нет, и мне следует спросить об этом на StackOverFlow на Github, который в настоящее время закрыт.
Вот код ошибки:
ОТЛАДКА: отправка запроса в Pocket API с аргументами: ["sort": "newest", "since": "", "state": "unread", "count": "200"]
DEBUG: получен ответ от Pocket API
DEBUG: код состояния HTTP: -1
DEBUG: ответ: nil
DEBUG: ошибка: нет ошибок
А вот код Swift, используемый для загрузки элементов:
@objc func loadPocketItems() {
HUD.show(.progress)
let arguments = getCurrentArguments()
print("DEBUG: Sending request to Pocket API with arguments: \(arguments)")
PocketAPI.shared().callMethod("get", with: PocketAPIHTTPMethodGET, arguments: arguments) { _, httpResponse, response, error in
HUD.hide()
if self.refresher.isRefreshing {
self.refresher.endRefreshing()
}
print("DEBUG: Received response from Pocket API")
print("DEBUG: HTTP Status Code: \((httpResponse as? HTTPURLResponse)?.statusCode ?? -1)")
print("DEBUG: Response: \(response as Any)")
print("DEBUG: Error: \(error?.localizedDescription ?? "No error")")
if let error = error {
VPAlertManager.showErrorMessage(vc: self, message: "API Error: \(error.localizedDescription)")
return
}
guard let response = response as? [String: Any] else {
VPAlertManager.showErrorMessage(vc: self, message: "Response is empty or invalid")
return
}
let json = JSON(response)
let list = json["list"]
if list.isEmpty {
VPAlertManager.showErrorMessage(vc: self, message: "List is empty")
return
}
if let itemList = response["list"] as? [AnyHashable: Any] {
self.pocketItems = VPPocketManager.sortItems(vc: self, itemList: itemList)
self.pocketItems = self.pocketItems.reversed()
self.tableView.reloadData()
// Track Used Once
let key = "Pocket Used"
if !UserDefaults.standard.bool(forKey: key) {
Mixpanel.mainInstance().track(event: key)
UserDefaults.standard.set(true, forKey: key)
}
} else {
VPAlertManager.showErrorMessage(vc: self, message: "Invalid response format")
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ting-items