μΊμ λλ LoginWebViewControllerλ₯Ό ν΅ν μΈμ¦μ΄ λ€μ μ€λ₯μ ν¨κ» μ€ν¨ν©λλ€.
" https://i.instagram.com/api/v1/accounts/current_user/.\n μλͺ»λ μλ΅.\nμ²λ¦¬ νΈλ€λ¬κ° nil
λ°ννμ΅λλ€.\n405"
κ²μλ¬Όμμ UsersHandler CurrentUser λ©μλλ₯Ό λ³κ²½νμ¬ κ°μ Έμ΅λλ€.
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
μΈμ¦.μλ΅ in
APIHandler.respon`. λ€μ λ‘κ·ΈμΈνμμμ€.")))
}
// 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 λ©μλλ₯Ό λ³κ²½νμ¬ κ°μ Έμ΅λλ€.
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
μΈμ¦.μλ΅in
APIHandler.respon`. λ€μ λ‘κ·ΈμΈνμμμ€.")))
}
// 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 λ©μλλ₯Ό λ³κ²½νμ¬ κ°μ Έμ΅λλ€.
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
μΈμ¦.μλ΅in
APIHandler.respon`. λ€μ λ‘κ·ΈμΈνμμμ€.")))
}
// 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) }`
κ·νμ μ루μ μ κΈ°λ°μΌλ‘ μλνμ§λ§ μλνμ§ μλ κ² κ°μ΅λλ€.
μ΄κ²μ λλ₯Ό μν΄ μΌνκ³ μμ΅λλ€ ..
ν¬λλ₯Ό μ¬μ©νλ κ²½μ° νλ‘μ νΈλ₯Ό λ€μ λΉλνμ¬ λ¨Όμ λͺ¨λ κ²μ μ 리(command-shift-K)νκ±°λ νμ λ°μ΄ν°λ₯Ό μ 리ν΄μΌ ν μ μμ΅λλ€.
λ³κ²½λ λΌμΈμ 13λ²μ§Έ μ€λΆν° UserHandler.swift νμΌμ μμ΅λλ€.
κ²μλ¬Όμμ UsersHandler CurrentUser λ©μλλ₯Ό λ³κ²½νμ¬ κ°μ Έμ΅λλ€.
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
μΈμ¦.μλ΅in
APIHandler.respon`. λ€μ λ‘κ·ΈμΈνμμμ€.")))
}
// 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 λ©μλλ₯Ό λ³κ²½νμ¬ κ°μ Έμ΅λλ€.
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
μΈμ¦.μλ΅in
APIHandler.respon`. λ€μ λ‘κ·ΈμΈνμμμ€.")))
}
// 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) }`
κ·νμ μ루μ μ κΈ°λ°μΌλ‘ μλνμ§λ§ μλνμ§ μλ κ² κ°μ΅λλ€.
μ΄κ²μ λλ₯Ό μν΄ μΌνκ³ μμ΅λλ€ ..
ν¬λλ₯Ό μ¬μ©νλ κ²½μ° νλ‘μ νΈλ₯Ό λ€μ λΉλνμ¬ λ¨Όμ λͺ¨λ κ²μ μ 리(command-shift-K)νκ±°λ νμ λ°μ΄ν°λ₯Ό μ 리ν΄μΌ ν μ μμ΅λλ€.
λ³κ²½λ λΌμΈμ 13λ²μ§Έ μ€λΆν° UserHandler.swift νμΌμ μμ΅λλ€.
λλΆμ νμ λ°μ΄ν°λ₯Ό μ§μ°κ³ μ μμ μΌλ‘ μλν©λλ€.
@alperalb κ°μ¬ν©λλ€. 2.3.3
μ μ½λλ₯Ό μ
λ°μ΄νΈνμ΅λλ€.\
κ·Έλ¬λ SwiftyInsta λ λ μ΄μ μ κ·Ήμ μΌλ‘ μ μ§ κ΄λ¦¬λμ§ μμΌλ―λ‘ μ΄κ²μ μ¬μ΄ μμ μ΄μμ§λ§ ν₯ν μλμ΄ μ€μ§λ μ μμ΅λλ€.
λΉ λ₯Έ μ λ°μ΄νΈ κ°μ¬ν©λλ€. κ·Έλλ μ κ·Ήμ μΌλ‘ μ μ§ κ΄λ¦¬λμ§ μλ κ²μ λ§€μ° μ¬ν μΌμ λλ€. imho νμ¬λ‘μλ κ°μ₯ λΉ λ₯Έ Instagram νλ μ μν¬μ΄λ©° μ£½κ² λλ κ²μ λλΉμ λλ€.
@sbertix λ μ μ§ κ΄λ¦¬λ₯Ό λμλ립λλ€. 곡μ§κ° μ΄λμλμ?
pod 'SwiftyInsta', :git => 'https://github.com/TheM4hd1/SwiftyInsta', :branch => 'master'
λ₯Ό μ¬μ©ν΄μΌ
@sbertix 릴리μ€μ νκ·Έκ° μ§μ λμμ΅λκΉ?
λΉ λ₯Έ μ λ°μ΄νΈ κ°μ¬ν©λλ€. κ·Έλλ μ κ·Ήμ μΌλ‘ μ μ§ κ΄λ¦¬λμ§ μλ κ²μ λ§€μ° μ¬ν μΌμ λλ€. imho νμ¬λ‘μλ κ°μ₯ λΉ λ₯Έ Instagram νλ μ μν¬μ΄λ©° μ£½κ² λλ κ²μ λλΉμ λλ€.
νμ¬ κ΅¬νμ "λ¬Έμ "κ° λ무 λ§μ μμΌλ‘ @biox86μ μμ ν μ 리ν΄μΌ ν©λλ€.
λ΄κ° SwiftyInsta 2.0
μμ±ν λ, κΈ°λ³Έμ μΌλ‘ ν¬ν
μ΄μλ μλ ꡬνμ λν΄ μ¬μ ν "μ§μ ν" λ°©μμΌλ‘ μμ±νμ΅λλ€.
κ·Έ μ΄νλ‘ Swiftλ λ§μ΄ λ°λμκ³ μμ² μ·¨μ, μΈμ¦ μλ΅μ μν λ€μ€ μ μ₯μ μ§μ, μλ μ€μΈ μ¬μ©μ μ΄λ¦ λ° λΉλ°λ²νΈ μΈμ¦, κ²°ν© μ§μ, μ¬μ©μ μ μ μΈμ¦ λ± λ§μ κΈ°λ₯μ μ½λλ² μ΄μ€μ λ¨μν μΆκ°ν μ μμ΅λλ€.
κ·Έλμ μ λ μ¬μ©νκΈ° μ½κ³ μμ λͺ¨λ λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ μ΅μ Swift, Swiftagramμ μ¬μ©νμ¬ μ νλ‘μ νΈλ₯Ό μμνμ΅λλ€. μ²μλΆν° μμνλ κ²μ μ λ§ νμνμ΅λλ€.
@sbertix λ μ μ§ κ΄λ¦¬λ₯Ό λμλ립λλ€. 곡μ§κ° μ΄λμλμ?
곡μ λ°νκ° μμ΅λλ€. λλ μλ‘μ΄ λ¬Έμ κ° λ³΄λ΄μ§ λλ§λ€ μ¬λλ€μκ² μκΈ°μμΌ μ£Όκ³€ ν©λλ€.
μ λ Swiftagram μμ μμ
νλ©΄μ μ¬μ ν μ€μν λ¬Έμ (μ: μ΄μ κ°μ)λ₯Ό μμ ν μμ μ΄μ§λ§ μ¬κΈ°μ μλ‘μ΄ κΈ°λ₯μ΄λ κ°μ μ¬νμ νΈμνμ§ μμ κ²μ
λλ€(μλ₯Ό λ€μ΄ Swiftagram BasicAuthenticator
μ΄μνμ§ μμ κ²μ
λλ€. κ²°ν© κΈ°λ₯).
SwiftyInsta μ ν¬μνκ³ PRμ ν΅ν΄ κΈ°μ¬νκ³ μ΄λ₯Ό νμ±ννκ³ μΆλ€λ©΄ @mycroftcannerλ₯Ό νμ
pod 'SwiftyInsta', :git => 'https://github.com/TheM4hd1/SwiftyInsta', :branch => 'master'
λ₯Ό μ¬μ©ν΄μΌ@sbertix 릴리μ€μ νκ·Έκ° μ§μ λμμ΅λκΉ?
λ€. λͺ¨λ νκ·Έ λ° ν¬λ λ²μ μ
λ°μ΄νΈβ¦ π€
μ κ·Έλ κ² νλμ§ μ λͺ¨λ₯΄κ² μ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
@alperalb κ°μ¬ν©λλ€.
2.3.3
μ μ½λλ₯Ό μ λ°μ΄νΈνμ΅λλ€.\κ·Έλ¬λ SwiftyInsta λ λ μ΄μ μ κ·Ήμ μΌλ‘ μ μ§ κ΄λ¦¬λμ§ μμΌλ―λ‘ μ΄κ²μ μ¬μ΄ μμ μ΄μμ§λ§ ν₯ν μλμ΄ μ€μ§λ μ μμ΅λλ€.