ΠΡΠΈΠ²Π΅Ρ,
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ΡΠΊΠ°ΠΆΠΈ ΠΌΠ½Π΅. Π£ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅ Π² func login Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ SMS Ρ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π» Π² credentials.code = "121332".
Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ? Π§ΡΠΎ Ρ Π΄Π΅Π»Π°Ρ Π½Π΅ ΡΠ°ΠΊ?
ΠΡΠΎ ΠΌΠΎΠΉ ΠΊΠΎΠ΄
class 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)")
}
}
}
}
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ credentials.code = "121332"
ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²Π΅ΡΠ½Π΅Ρ .failure(let error)
.
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎ Π²Π½ΡΡΡΠΈ if error.requiresInstagramCode {Β }
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Ρ
ΠΎΡΠΎΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ
https://prnt.sc/pgyf15
ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π±Π΅Π· ΡΠΎΡΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²Π°. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ ΠΊΠΎΠ΄, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡΠΎΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ credentials.code
. :ΠΊΡΠ°ΡΠ½Π΅ΡΡ:
ΠΡΠ»ΠΈ ΡΡΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ credentials
(Ρ
ΠΎΡΡ ΡΡΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΈΠ· ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ Π²ΠΈΠΆΡ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°, tbh).
https://prnt.sc/pgynah
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. Π₯ΠΎΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π°ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² .user, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π΅ΡΡΡ .credentials (ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅), ΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°
.user
- ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΡΡΡ.
.credentials
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ Π² development
ΠΈ Ρ Π·Π°Π±ΡΠ» Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π»ΠΈ. Π― ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΠΌΠ΅Π½ΡΡ.
Π― Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΡΠ΅ΡΡΠΈΡΡΡ Π΅Π³ΠΎ ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ, ΠΈ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π·Π°Π΄ΡΠΌΠ°Π½ΠΎ π€
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½Π΅ Π²ΠΈΠΆΡ ΡΡΠΎΠ³ΠΎ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ½ΠΈΠΌΠΊΠ΅ ΡΠΊΡΠ°Π½Π°, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ credentials
ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ code
ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Π²Π΅ΡΠ½Π΅Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ Error
?
ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ, ΠΊΠ°ΠΆΠ΅ΡΡΡ, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΡΡ Π΄Π΅Π»Π°Π΅ΡΡ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ, tbh π
ΠΡΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ .credentials, Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° https://prnt.sc/pgyvlx
Π― ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠ» Π²Π΅ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ.
Π― Π΄Π΅Π»Π°Ρ ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ?
ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ?
.user
- ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ, .credentials
ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ Π±ΡΠ» ΡΠΎΡ
ΡΠ°Π½Π΅Π½ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ credentials
ΠΏΠΎΠ΄ handler
one. ΠΠ°ΠΊ Β«ΠΎΡΡΠ°Π²ΡΠ°ΡΡΡ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈΒ» ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ.
Π’ΠΎΠ³Π΄Π° ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ.
let handler = APIHandler()
let credentials = Credentials( β¦ )
func login() {
β¦
}
ΡΡΠΎ Π²Π΅ΡΡ ΠΊΠΎΠ΄, Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° (
ΠΈΠΌΠΏΠΎΡΡ UIKit
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ SwiftyInsta
class ViewController: UIViewController {
ΠΏΡΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ = APIHandler ()
var credentials = Credentials (ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: Β«ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΒ», ΠΏΠ°ΡΠΎΠ»Ρ: Β«ΠΏΠ°ΡΠΎΠ»ΡΒ», 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] ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Β«ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Π°Β»
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ _Xcode_, Π° Π½Π΅ Π½Π° ΡΡΠΎ-ΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ SwiftyInsta
π€
Π£ ΠΌΠ΅Π½Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠ΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΏΠ°ΡΡΡ Π² Π±Π»ΠΎΠΊ ΡΠ±ΠΎΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ· ΡΠΌΡ. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ?
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅, Ρ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π΄Π²ΡΡ ΡΠ°ΠΊΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ?
@sbertix ΡΠΊΠΎΡΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠ΅Ρ Π½Π°Π³Π»ΡΠ΄Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΏΠΎΡΠ΅ΡΠΏΠΈ.
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΠΌΠ½Π΅ Π΅ΡΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π±ΡΠ» ΠΎΡΠ΅Π½Ρ Π·Π°Π½ΡΡ.
Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΠΊΠΎΡΠΎ ΡΠΌΠΎΠ³Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½
Π― Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² Swift, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ Π½Π°ΡΠ΅Π» ΠΎΡΠΈΠ±ΠΊΡ:
user
(ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Credentials
) ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.Credentials
, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° handler
Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ. Π€ΡΠ½ΠΊΡΠΈΡ authentification.code()
Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ.Π£ ΠΌΠ΅Π½Ρ Π½Π΅ Π±ΡΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π΄Π°Π»ΡΡΠ΅, Π½ΠΎ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΡΠΏΠ΅Ρ
ΠΎΠΌ ΠΌΠΎΠ³Π»ΠΎ Π±ΡΡΡ. ΠΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Credentials
ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ struct
Π° Π½Π΅ ΠΊΠ°ΠΊ class
, ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ»ΠΊΠΎΠΉ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
ΠΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Ρ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΠ» Π² ΡΠ²ΠΎΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Π»ΠΈΠ±ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π²Π½Π΅Ρ Π² master
ΠΏΡΠΎΡΠ΅ΡΡΠ΅, ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ²Π°Ρ.
Π― ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ Π΄Π»Ρ # 96, Π½ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ ΠΌΠ΅Π½Ρ Π½Π΅ Π±ΡΠ»ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ·Π²ΠΈΠ½Π΅Π½ΠΈΡ.
@Lyusan
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΠΌΠ½Π΅ Π΅ΡΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π±ΡΠ» ΠΎΡΠ΅Π½Ρ Π·Π°Π½ΡΡ.
Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΠΊΠΎΡΠΎ ΡΠΌΠΎΠ³Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½