μλ
νμΈμ,
λ§ν΄ μ£ΌμΈμ. λ¬Έμ κ° μμ΅λλ€.
func λ‘κ·ΈμΈμ λν μμ²μΌλ‘ λλ credentials.code = "121332"μ λ±λ‘ν μ½λκ° ν¬ν¨λ SMSλ₯Ό λ°μμ΅λλ€.
μ΄ μ½λλ₯Ό λ€μ λ³΄λΌ μ μμ΅λλ€. κ·Έκ²μ νλ λ°©λ²? λ΄κ° λ μλͺ»νκ³ μμ£ ?
μ΄κ²μ λ΄ μ½λμ λλ€.
ν΄λμ€ ViewController: UIViewController {
let handler = APIHandler()
override func viewDidLoad() {
super.viewDidLoad()
login()
}
func login() {
var credentials = Credentials(username: "username", password: "password", verifyBy: .text)
credentials.code = "121332"
handler.authenticate(with: .user(credentials)) { [weak self] in
switch $0 {
case .success(let response, _):
print("Login successful.")
guard let key = response.persist() else { return print("`Authentication.Response` could not be persisted.") }
UserDefaults.standard.set(key, forKey: "current.account")
UserDefaults.standard.synchronize()
self?.getCurrentUser()
case .failure(let error):
if error.requiresInstagramCode {
} else {
}
}
}
}
func getCurrentUser() {
self.handler.users.user(.me) { ( result: Result<User?, Error>) in
switch result {
case .success(let user):
let username = user?.name ?? "John Doe"
print("success, username: \(username)")
case .failure(let error):
print("failure, error: \(error.localizedDescription)")
}
}
}
}
μΈμ¦ μ²λ¦¬κΈ°κ° .failure(let error)
λ°νν ν credentials.code = "121332"
λ₯Ό μ΄λν΄μΌ ν©λλ€.
if error.requiresInstagramCode {Β }
λ΄λΆμμ λΉλκΈ°μμΌλ‘ μννλ κ²μ΄ μ’μ μ΅μ
μΌ μ μμ΅λλ€.
λ¬Έμ κ° μ¬μ ν μ‘΄μ¬ν©λλ€
https://prnt.sc/pgyf15
λΆλͺ
νμ΄ μ½λλ₯Ό 보λ΄μ§ μμ΅λλ€
μ€λ¨μ μμ΄ μλνμμμ€. μ΄λ κ² νλ©΄ μ½λκ° ν΄λΉ νμ λλ¬ν λ μ€μ λ‘ μ€μ§λλ―λ‘ credentials.code
λ³κ²½μΌλ‘ μμ²μ μ νν μ μμ΅λλ€. :λΆνλ€:
κ·Έλλ μ무 κ²λ λ³κ²½λμ§ μμΌλ©΄ credentials
λ μ μ§ν΄ 보μμμ€(λ¨, tbh μ€λν«μμ λ³Ό μ μλ λ¬Έμ λ μλ).
https://prnt.sc/pgynah
λ¬Έμ κ° μ¬μ ν μ‘΄μ¬ν©λλ€. μ£Όμλ₯Ό κΈ°μΈμ΄κ³ μΆμ΅λλ€. μ격 μ¦λͺ
μ .userμκ² μ λ¬ν©λλ€. .credentials(μμ μμμ κ°μ΄)κ° μμΌλ©΄ μ€λ₯κ° λ°μνκΈ° λλ¬Έμ
λλ€.
.user
κ° μ¬λ°λ₯Έ λ°©λ²μ
λλ€.
.credentials
μ΄ development
μμ μ¬μ©λμκ³ λ³κ²½νλ κ²μ μμμ΅λλ€. μ§μ ν΄ μ£Όμ
μ κ°μ¬ν©λλ€. μ§κΈ λ°λ‘ λ³κ²½νκ² μ΅λλ€.
λ΄ λ°©μλλ‘ ν
μ€νΈνκ³ μκ³ λͺ¨λ κ²μ΄ μλν λλ‘ μλνκΈ° λλ¬Έμ μ¬μ ν μ€λ₯κ° λ°μνμ§ μμ΅λλ€ π€
λ§μ§λ§ μ€ν¬λ¦°μ·μμ λ³Ό μ μκΈ° λλ¬Έμ credentials
κ·Έλ° μμΌλ‘ μ μ§νκ³ Error
νμν code
λ₯Ό μ
λ°μ΄νΈνλ©΄ μ€μ λ‘ μλνμ§ μμ΅λκΉ? ?
λΉμ μ΄ λ€λ₯Έ μΌμ νλ κ²μ κ·Έκ²λΏμΈ κ² κ°μΌλκΉ, tbh π
.credentialsλ₯Ό μ¬μ©νλ©΄ https://prnt.sc/pgyvlx μ€λ₯κ° λ°μν©λλ€.
λ΄ λͺ¨λ μ½λλ₯Ό κΈ°λ³Έ λ©μμ§μ κ²μνμ΅λλ€.
λ΄κ° λκ° μλͺ»νκ³ μμ΅λκΉ?
λ©μμ§λ₯Ό λ€μ 보λ΄λ ν μ€νΈλ μ΄λ»κ² ν©λκΉ?
.user
μ΄ μ¬λ°λ₯Έ κ²μ
λλ€. .credentials
κ° μ€μλ‘ λ¬Έμμ 보κ΄λμμ΅λλ€.
λΉμ μ μ μΈ μ΄λ credentials
μλ handler
λ₯Ό. "보μ " μμ±μΌλ‘.
κ·Έλ¬λ©΄ μλν΄μΌ ν©λλ€.
let handler = APIHandler()
let credentials = Credentials( β¦ )
func login() {
β¦
}
λͺ¨λ μ½λ, μ΄μ¨λ μ€λ₯κ° μμ΅λλ€(
UIKit κ°μ Έμ€κΈ°
κ°μ Έμ€κΈ° SwiftyInsta
ν΄λμ€ ViewController: UIViewController {
νΈλ€λ¬ = APIHandler() νμ
var μ격 μ¦λͺ
= μ격 μ¦λͺ
(μ¬μ©μ μ΄λ¦: "μ¬μ©μ μ΄λ¦", μνΈ: "μνΈ", verifyBy: .text)
override func viewDidLoad() {
super.viewDidLoad()
login()
}
func login() {
handler.authenticate(with: .user(credentials)) { [weak self] in
switch $0 {
case .success(let response, _):
print("Login successful.")
guard let key = response.persist() else { return print("`Authentication.Response` could not be persisted.") }
UserDefaults.standard.set(key, forKey: "current.account")
UserDefaults.standard.synchronize()
self?.getCurrentUser()
case .failure(let error):
if error.requiresInstagramCode {
self!.credentials.code = "178063"
} else {
}
}
}
}
func getCurrentUser() {
self.handler.users.user(.me) { ( result: Result<User?, Error>) in
switch result {
case .success(let user):
let username = user?.name ?? "John Doe"
print("success, username: \(username)")
case .failure(let error):
print("failure, error: \(error.localizedDescription)")
}
}
}
}
κ·Έλ¦¬κ³ μ΄λ²μλ μ€λ₯κ° λ¬΄μμ λκΉ? @rmelnik7777
2019-10-09 17:32:25.333892+0300 TestInsta[9747:281440] [] nw_connection_receive_internal_block_invoke [C1] "μμ μ΄ μ·¨μλμμ΅λλ€" μ€λ₯λ‘ μλ΅ μμ μ€ν¨
μ€μ λ‘ SwiftyInsta
μμ±λ κ²μ΄ μλλΌ μΌμ’
μ _Xcode_ κ²½κ³ μ²λΌ 보μ
λλ€. π€
λΉμ·ν λ¬Έμ κ° μμ΅λλ€. SMSμμ μΈμ¦ μ½λλ₯Ό μ€μ νκΈ° μν΄ μ€ν¨ λΈλ‘μΌλ‘ λ€μ΄κ°λ λ°©λ²μ΄ λͺ ννμ§ μμ΅λλ€. μλ₯Ό λ€μ΄ λμμ£Όμκ² μ΅λκΉ?
μλ νμΈμ μ λ κ°μ λ¬Έμ κ° μμ΅λλ€. 2λ¨κ³ μΈμ¦μ μν μμ μν μ ν리μΌμ΄μ μ 곡μ ν μ μμ΅λκΉ?
@sbertix λ 곧 λͺ
νν μλ₯Ό κ²μν κ²μ
λλ€.
μΈλ΄μ¬μ κ°μ ΈλΌ.
μ£μ‘ν©λλ€. μμ§ μμ λ₯Ό κ²μνμ§ λͺ»νμ΅λλ€. μ κ° μ λ§ λ°λΉ΄μ΅λλ€.
λλ λ΄κ° 곧 νλλ₯Ό κ²μν μ μκΈ°λ₯Ό λ°λλλ€.
λλ swiftμ μμ ν μ΅μνμ§ μμ§λ§ λ²κ·Έλ₯Ό λ°κ²¬νμ μ μμ΅λλ€.
user
( Credentials
μΈμ€ν΄μ€)μ λ³κ²½ κ°λ₯ν 볡μ¬λ³Έμ λ§λ€κ³ νΈλ€λ¬ μμ±μ κ°μ μ€μ ν©λλ€.Credentials
μ μλ μΈμ€ν΄μ€μ΄λ―λ‘ handler
μμ± κ°μ΄ μ€μ λμ§ μμ΅λλ€. authentification.code()
ν¨μκ° νΈμΆλμ§ μμ΅λλ€.λ μμΈν μ‘°μ¬ν κΈ°νκ° μμμ§λ§ κ·Έλ΄ μλ μμ΅λλ€. λΆλͺ
ν νμ¬ μ»€λ°μμ Credentials
λ struct
λ‘ μ μΈλκ³ class
μ΄ μλλΌ λͺ¨λ μ°Έμ‘°μ μν μ λ¬μ μ μ μμ΅λλ€.
λΆλͺ
ν λ‘컬 λ²μ μμ μμ νκ±°λ master
νΈμν μΌλΆ λ³κ²½ μ¬νμ΄κ±°λ λ¬Έμ μμ²΄κ° μλ μλ μμ΅λλ€.
#96μ λν λͺ¨λ κ²μ κ²ν νλ €κ³ λ
Έλ ₯νμ§λ§ μ΅κ·Όμλ μκ°μ΄ μμμ΅λλ€. μ¬κ³Ό.
@λ₯μ°
κ°μ₯ μ μ©ν λκΈ
μ£μ‘ν©λλ€. μμ§ μμ λ₯Ό κ²μνμ§ λͺ»νμ΅λλ€. μ κ° μ λ§ λ°λΉ΄μ΅λλ€.
λλ λ΄κ° 곧 νλλ₯Ό κ²μν μ μκΈ°λ₯Ό λ°λλλ€.