Swiftyinsta: 新規ユーザーログインの問題

作成日 2019年08月07日  ·  6コメント  ·  ソース: TheM4hd1/SwiftyInsta

新しく登録した新規ユーザーでログインしてみてください。 Webログインがランダムに完了しない場合があります。 Instagramは別のユーザー提案ページを表示します。 私は1人のユーザーをフォローしようとしましたが、1人のユーザーもフォローしました(フィードは表示されますが機能しません)。ほとんどの場合、このユーザーのWebログインは完了していません。 ログインを2〜3回試行した後、機能する場合があります。

  • 2FAなし-パスワードを使用した直接ログイン
help wanted

全てのコメント6件

新規登録とは、Webビューからサインアップしたとき、または作成したばかりの別の場所にログインしたときに発生するという意味ですか? @canaksoy
それを複製する方法を理解するためだけに😊

いずれにせよ、特定のURLではなく、Cookieを直接チェックすることで、修正できる可能性があります(前述の提案ページに到達する前にすべて設定されていると仮定します)。 できるだけ早くプルリクエストを送信しています。

チェック#76、 @ canaksoy💪

主な変更点は、実際にinstagram.comチェックするのではなく、有効なCookieだけをチェックすることを除いて、マルチアカウントのサポートを壊さないように、すべてのinitプロセスをasyncにしました(私はこれを2.0で適切に処理することを計画しており、 UIViewController返すか、 LoginManagerようなものでWebビューを作成します)。

@ TheM4hd1が実際にマージすることを承認するのを待っています😊

結局のところLoginWebView私は削除していますので、まだの場合にも、働いていたが、(私は両方のそれを自分自身をテストし、彼のスクリーンショットをチェックしました)上@canaksoyによって記述bugのラベルをhelp wanted 1つ。
それでも、PRは将来全体を証明するのに有益であり、私見でマージする必要があります。

将来の参考のために…新しい振る舞いはこれです。
(@mkeshnoda)

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 })
    }
}

将来の参考のために…新しい振る舞いはこれです。
(@mkeshnoda)

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 })
    }
}

私はまったく同じことをしましたが、ログインした後、 didSuccessfullyLogIncompletionHandlerが機能していません😭

少しデバッグを行ったところ、 filtered.count = 1原因でログインできないことがわかりました。 isUserLoggedIn(instagramCookies: [HTTPCookie]?)は2つのCookieのみを受け取ります

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 }

それで新しい問題を開いて、あなたの流れを説明できますか? @mkeshnoda
残念ながら、これら3つのCookieは非常に必要であるため、修正するためにできることは何もありません…文字通り「ログインしている」という意味です。
そして、それが以前に機能した場合、それは奇妙な原因です、それは今も同じように機能するはずです(それはすでにそれらのうちの少なくとも2つをチェックしました)。 私は4つの異なるアカウントでテストしましたが、それらはすべて機能しているようです。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

anonrig picture anonrig  ·  3コメント

sbertix picture sbertix  ·  3コメント

rmelnik7777 picture rmelnik7777  ·  19コメント

biox86 picture biox86  ·  12コメント

reefer picture reefer  ·  18コメント