coba masuk dengan pengguna baru terdaftar yang baru. login web tidak selesai terkadang secara acak. Instagram menampilkan halaman saran pengguna yang berbeda. Saya mencoba mengikuti 1 pengguna, juga 1 pengguna mengikuti saya (ini menunjukkan umpan tetapi tidak berfungsi) sebagian besar login web tidak selesai untuk pengguna ini. Setelah mencoba 2-3 kali untuk login mungkin berhasil.
Ketika Anda mengatakan baru terdaftar, maksud Anda itu terjadi saat mendaftar dari tampilan web, atau saat masuk ke akun yang baru saja dibuat tetapi di tempat lain? @canaksoy
Hanya untuk memahami bagaimana mencoba dan menirunya 😊
Either way, memeriksa secara langsung untuk cookies, bukannya setiap url yang diberikan, mungkin memperbaiki (dengan asumsi mereka sudah siap sebelum mencapai halaman saran tersebut). Saya mengirim permintaan tarik ASAP.
Periksa # 76, @canaksoy 💪
Perubahan utama, selain tidak benar-benar memeriksa instagram.com
tetapi hanya untuk cookie yang valid, saya telah membuat semua init
proses async
, agar tidak merusak dukungan multi akun ( Saya berencana untuk menangani ini dengan benar di 2.0
, baik mengembalikan UIViewController
atau sesuatu seperti LoginManager
membuat tampilan web).
Saya menunggu persetujuan @TheM4hd1 untuk benar-benar menggabungkannya 😊
Ternyata LoginWebView
masih berfungsi bahkan dalam kasus yang dijelaskan oleh @canaksoy di atas (saya telah mengujinya sendiri dan memeriksa tangkapan bug
untuk help wanted
satu.
Tetap saja, PR bermanfaat untuk pemeriksaan masa depan semuanya, dan itu harus digabungkan.
Untuk referensi di masa mendatang ... perilaku barunya adalah ini.
(@mkeshoda)
class LoginViewController: UIViewController {
var webView: InstagramLoginWebView? {
didSet {
oldValue?.removeFromSuperview()
guard let webView = webView else { return }
// add to view hierarchy (NECESSARY).
view.addSubview(webView)
// always request log in page when setting a new web view.
webView.loadInstagramLogin()
}
}
override func viewDidLoad() {
super.viewDidLoad()
// create a new `InstagramLoginWebView`.
InstagramLoginWebView.create(with: view.bounds,
completionHandler: { _, _ in /* deal with login and failures */ },
returnHandler: { [weak self] in self?.webView = $0 })
}
}
Untuk referensi di masa mendatang ... perilaku barunya adalah ini.
(@mkeshoda)class LoginViewController: UIViewController { var webView: InstagramLoginWebView? { didSet { oldValue?.removeFromSuperview() guard let webView = webView else { return } // add to view hierarchy (NECESSARY). view.addSubview(webView) // always request log in page when setting a new web view. webView.loadInstagramLogin() } } override func viewDidLoad() { super.viewDidLoad() // create a new `InstagramLoginWebView`. InstagramLoginWebView.create(with: view.bounds, completionHandler: { _, _ in /* deal with login and failures */ }, returnHandler: { [weak self] in self?.webView = $0 }) } }
Saya melakukan hal yang persis sama tetapi setelah masuk didSuccessfullyLogIn dan completionHandler tidak berfungsi
Baru saja melakukan sedikit debug dan mengetahui bahwa saya tidak dapat masuk karena filtered.count = 1
. isUserLoggedIn(instagramCookies: [HTTPCookie]?)
hanya menerima 2 kue
let filtered = cookies.filter {
!$0.value.isEmpty
&& $0.properties?[.init(rawValue: "Created")] as? TimeInterval ?? 0 > startedAt.timeIntervalSinceReferenceDate
&& ($0.name == "ds_user_id" || $0.name == "csrftoken" || $0.name == "sessionid") }
guard filtered.count >= 3 else { return }
Bisakah Anda membuka masalah baru dengannya dan menjelaskan aliran Anda? @mkeshoda
Karena sayangnya 3 cookie itu sangat dibutuhkan, jadi tidak ada yang bisa kami lakukan untuk memperbaikinya… secara harfiah berarti "Anda telah masuk".
Dan itu aneh karena jika itu berhasil sebelumnya, itu harus bekerja dengan baik sekarang (sudah diperiksa setidaknya 2 dari mereka). Saya telah menguji dengan 4 akun berbeda dan semuanya tampaknya berfungsi.