• 29-06-2021, 03:01:30
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhabalar,
    Androidde instagram unofficial api ile bir yazılım geliştirmeyi deniyorum javada çok tecrübem yok 2. projem
    Yapmaya çalıştığım şey, Giriş işleminden sonra onTwoFactor olayında döndürülen değeri kullanıcı girdikten sonra return olması. İşlemi 1 kez yapmam lazım 2. sefer çalıştırırsam 2. sms geliyor kodlarım aşağıda umarım anlatabilmişimdir derdimi
    Yani istediğim şeu ikifaktor isimli edit textdeki string 99999 dan büyük olunca return atmalı yukarı kısım
  • 29-06-2021, 03:46:41
    #2
    hocam if kontrolleri ile yapsanız,
    Mesela butona basıldığında if çalışsın eğer ikifaktor 5 haneden büyükse devam etsin küçükse toast mesaj göstersin.
    kotlinde şu şekilde yapılabilir
    if( ikifaktor.length() == 5 ){
    }
    Yani bu iişinize yarayabilir
  • 29-06-2021, 03:47:58
    #3
    kejmekan adlı üyeden alıntı: mesajı görüntüle
    hocam if kontrolleri ile yapsanız,
    Mesela butona basıldığında if çalışsın eğer ikifaktor 5 haneden büyükse devam etsin küçükse toast mesaj göstersin.
    kotlinde şu şekilde yapılabilir
    if( ikifaktor.length() == 5 ){
    }
    Yani bu iişinize yarayabilir
    Fikrin için teşekkürler ama aynı button click eventinde giriş işlemide olmalı aksi takdirde sms gitmez o sebepten if boş döndürürse ikinci smse kalırsın ve sonsuz döngüüüüü
  • 29-06-2021, 03:53:18
    #4
    Tamam hocam işte butona basıldığında ilk olarak if i çalıştıracak eğer if içindeki şart oluyorsa sms gönderme işlemine geçecek eğer şart olmazsa else ile tost mesaj göstereceksiniz. Yani sizin sms gönderme kodlarınız if içinde olacak buton clickten sonra değil
    Butona Basıldı - Butona basılınca if çalışacak - if içindeki şart karşılanıyorsa if altındaki sms gönderme kodları çalışacak & eğer if karşılanmıyorsa else içinde ki toast mesaj çalışacak
    Yada buton normalde isenable textwatcher ile edittext'i sürekli kontrol edeceksiniz. 5 hanenin üstüne çıktığında butonu enable yapacaksınız yani belki ben sizin isteğinizi yanlış anlıyor olabilirim ama
  • 29-06-2021, 03:57:23
    #5
    kejmekan adlı üyeden alıntı: mesajı görüntüle
    Tamam hocam işte butona basıldığında ilk olarak if i çalıştıracak eğer if içindeki şart oluyorsa sms gönderme işlemine geçecek eğer şart olmazsa else ile tost mesaj göstereceksiniz. Yani sizin sms gönderme kodlarınız if içinde olacak buton clickten sonra değil
    Butona Basıldı - Butona basılınca if çalışacak - if içindeki şart karşılanıyorsa if altındaki sms gönderme kodları çalışacak & eğer if karşılanmıyorsa else içinde ki toast mesaj çalışacak
    Yada buton normalde isenable textwatcher ile edittext'i sürekli kontrol edeceksiniz. 5 hanenin üstüne çıktığında butonu enable yapacaksınız yani belki ben sizin isteğinizi yanlış anlıyor olabilirim ama
    Sms gelmeden kullanıcı sms inputun ne girecek

    Önce sms gitmeli sonra gelen smsi girince kullanıcı göndermeli istediğim bu sıkıntı bi iş
  • 29-06-2021, 04:00:50
    #6
    Tamam hocam ben yanlış anladım olayı o zaman ama hala nasıl bir şey yapmak istediğinizi anladım diyemem neyse artık keşke yardımcı olabilseydim
    Kolay gelsin saat geç olduğu için yardım edecek kişi sayısı da baya azaldı. Ama yarına bilen bir arkadaş cevap verecektir.
  • 30-06-2021, 02:52:20
    #7
    up++
  • 30-06-2021, 14:03:49
    #8
    lencls adlı üyeden alıntı: mesajı görüntüle
    up++
    Merhaba, ilk önce anlamam gerektiği için soracağım. Login ekranında kullanıcı - > kullanıcı adını ve şifresini yazıp giriş butonuna basıyor üste ki action giriş butonuna ait. Ama 1 kere tıkladığında sms gitmiyor da 2 kere tıkladığında mı sms gidiyor?
  • 30-06-2021, 17:46:00
    #9
    mrJavaC adlı üyeden alıntı: mesajı görüntüle
    Merhaba, ilk önce anlamam gerektiği için soracağım. Login ekranında kullanıcı - > kullanıcı adını ve şifresini yazıp giriş butonuna basıyor üste ki action giriş butonuna ait. Ama 1 kere tıkladığında sms gitmiyor da 2 kere tıkladığında mı sms gidiyor?
    Öncelikle ilgin için teşekkürler,
    olay şöyle bu app instagram hesabına giriş yapıyor unofficial bir api ile, biz ilk giriş butonuna bastığımızda alttaki .login() fonksiyonu çalışıyor eğer iki faktörlü doğrulama yoksa direk giriyor ve başarılı diye toast gösteriyor burda bir sıkıntı yok, ancak iki faktörlü doğrulama açık ise onTwoFactor(lgnhnd) işleme giriyor ve lgnhnd fonksiyonunu veya Callable<String> her ne ise onu çağırıyor o da smsde gelen kodu döndürmeli fakat bu tek buton click eventinde olmalı çünkü 2. giriş isteğinde yeniden sms gidiyor, benim istediğim şu kullanıcı ikifaktor isimli EditTexte 6 haneli numarayı girmeden üstteki lgnhnd fonksiyonu return vermesin ki boş veya yanlış sms gitmesin sunucuya, bu unofficial apiyi yapan arkadaş masaüstüne kodladıgı için konsolda Scanner kullanmış malum scanner entere basmadan return vermiyor. ama androidde Scannerimz yok adamın kodunu aşşağıya ekliyorum.
    package login;
    
    import java.io.IOException;
    import java.util.Scanner;
    import java.util.concurrent.Callable;
    
    import org.junit.Assert;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    
    import com.github.instagram4j.instagram4j.IGClient;
    import com.github.instagram4j.instagram4j.IGClient.Builder.LoginHandler;
    import com.github.instagram4j.instagram4j.utils.IGChallengeUtils;
    
    import junitparams.FileParameters;
    import junitparams.JUnitParamsRunner;
    
    @RunWith(JUnitParamsRunner.class)
    public class TwoFactorLoginTest {
        @Test
        @FileParameters("src/examples/resources/login.csv")
        public void testTwoFactor(String user, String pass) throws IOException {
            Scanner scanner = new Scanner(System.in);
    
            // Callable that returns inputted code from System.in
            Callable<String> inputCode = () -> {
                System.out.print("Please input code: ");
                return scanner.nextLine();
            };
    
            // handler for two factor login
            LoginHandler twoFactorHandler = (client, response) -> {
                // included utility to resolve two factor
                return IGChallengeUtils.resolveTwoFactor(client, response, inputCode);
            };
    
            IGClient client = IGClient.builder()
                    .username(user)
                    .password(pass)
                    .onTwoFactor(twoFactorHandler)
                    .simulatedLogin();
    
            Assert.assertNotNull(client.getSelfProfile());
        }
    }