• 10-09-2014, 13:34:35
    #1
    Merhabalar arkadaşlar. Hiçbir api kullanmadan HtmlElement yöntemi ile Twitter'dan basit bir Tweet atma programı yazmak istedim. Tweeti program aracılığıyla oluşturabiliyorum. Hiçbir sorun yok ama; oluşturduğum Tweeti C# programıyla bir türlü gönderemedim. Yani programa bir türlü şu mavi renkli olan "Tweetle" butonunu tıklatamadım.

    bakınız :

  • 10-09-2014, 14:33:29
    #2
    tweet atarken ayrı pencerede nasıl açtırdın hocam onu bulabilirsem butonun kodlarına bakıp birşey söyleyecektim sana.
  • 10-09-2014, 15:17:20
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    eleman.InvokeMember("click"); ile tıklatıyosan click yerine onclick veya submit yazıp denermisin?
  • 10-09-2014, 15:38:00
    #4
    VoyL adlı üyeden alıntı: mesajı görüntüle
    tweet atarken ayrı pencerede nasıl açtırdın hocam onu bulabilirsem butonun kodlarına bakıp birşey söyleyecektim sana.
    Şu şekilde açtırdım :

      foreach (HtmlElement elementin in webBrowser1.Document.All)
                {
                    if (elementin.Id == "global-new-tweet-button")
                    {
                        elementin.InvokeMember("click");
                    }
    betmo adlı üyeden alıntı: mesajı görüntüle
    eleman.InvokeMember("click"); ile tıklatıyosan click yerine onclick veya submit yazıp denermisin?
    Evet hocam.. Dediğiniz gibi, mavi olan Tweetle butonuna tıklatmak için click ifadesini kullanmıştım.

    Tıklatma kısmı için tam olarak şunu yaptım :

                    if(elementin.TagName == "button")
                    {
                        elementin.InvokeMember("click");
                    }
    click ifadesi yerine dediğinz gibi submit ve onlick yazdım ama sonuç vermedi. submit yazınca sayfa görüntülenemiyor hatası ile karşılaştım. Diğerlerinde ise hiçbir şey olmuyor. Tweet oluşturuluyor ve öyle kalıyor yani.
  • 10-09-2014, 15:42:33
    #5
    Getelementbyıd ile tıklattırabilirsiniz lakin program yavaş ve sorunlu olucaktır. Tweetsharp kullanmanızı öneririm kullanıyorum ve gayet hızlı bir çözüm.
  • 10-09-2014, 15:54:20
    #6
    Webkurum adlı üyeden alıntı: mesajı görüntüle
    Getelementbyıd ile tıklattırabilirsiniz lakin program yavaş ve sorunlu olucaktır. Tweetsharp kullanmanızı öneririm kullanıyorum ve gayet hızlı bir çözüm.
    Getelementbyıd ile tam olarak nasıl yapılıyor bilginiz var mı? İnternette Getelementbyıd ile yapılan bir site gördüm fakat; projeyi indirdiğim zaman benim ekran görüntüsündeki sorunun aynısı vardı. Tweet oluşturda kalıyor ekran.

    TweetSharp'ı da denemeye çalıştım fakat; TweetSharp ile yapınca gidip bide Twitter'dan uygulama oluşturmamız gerekiyor sanırım. Onu yaptım ama TweetSharp'ı sanırım sadece programı yapan kişi kullanabiliyor. Başkalarına yollayınca programı, uygulama Twitter hesaplarıda izin olmadığı için benden başkası kullanamıyor. Bu sebeple HtmlElement yöntemi ile yapmaya çalışıyorum şuanda.
  • 10-09-2014, 16:08:09
    #7
    pcmania adlı üyeden alıntı: mesajı görüntüle
    Getelementbyıd ile tam olarak nasıl yapılıyor bilginiz var mı? İnternette Getelementbyıd ile yapılan bir site gördüm fakat; projeyi indirdiğim zaman benim ekran görüntüsündeki sorunun aynısı vardı. Tweet oluşturda kalıyor ekran.

    TweetSharp'ı da denemeye çalıştım fakat; TweetSharp ile yapınca gidip bide Twitter'dan uygulama oluşturmamız gerekiyor sanırım. Onu yaptım ama TweetSharp'ı sanırım sadece programı yapan kişi kullanabiliyor. Başkalarına yollayınca programı, uygulama Twitter hesaplarıda izin olmadığı için benden başkası kullanamıyor. Bu sebeple HtmlElement yöntemi ile yapmaya çalışıyorum şuanda.
    Kaynağa ihtiyacınız varsa msdn forumunu önerebilirim. Microsoftun kendi forumu.
    Örnek ihtiyacınıza cevaplar:
    http://social.msdn.microsoft.com/For...forum=csharptr

    Eğer butonun id'si varsa ;
    webBrowser1.Document.GetElementById("mybutton").InvokeMember("click"); 
    mybutton butonun idsi


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:08:09 -->-> Daha önceki mesaj 16:04:25 --

    ++ekleme twitterın mobile versiyonunu kullanmanı öneririm webbrowserda daha hızlı çalışır
  • 10-09-2014, 16:22:57
    #8
    HtmlElementCollection html = webBrowser1.Document.GetElementsByTagName("button" );
    foreach (HtmlElement ee in html)
    {
    if (ee.GetAttribute("class").Equals("btn primary-btn tweet-action tweet-btn js-tweet-btn"))
    {
    ee.InvokeMember("click");
    break;
    }
    }

    şunu bi denermisin
  • 10-09-2014, 16:35:08
    #9
    Webkurum adlı üyeden alıntı: mesajı görüntüle
    Kaynağa ihtiyacınız varsa msdn forumunu önerebilirim. Microsoftun kendi forumu.
    Örnek ihtiyacınıza cevaplar:
    http://social.msdn.microsoft.com/For...forum=csharptr

    Eğer butonun id'si varsa ;
    webBrowser1.Document.GetElementById("mybutton").InvokeMember("click"); 
    mybutton butonun idsi


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:08:09 -->-> Daha önceki mesaj 16:04:25 --

    ++ekleme twitterın mobile versiyonunu kullanmanı öneririm webbrowserda daha hızlı çalışır
    Sorunda orada zaten hocam. Twitter sitesi bize bu konuda yeteri kadar bilgi sunmamış kodlarında. Yani ID verilmemiş. Başka şeyler türetmeye çalışıyorum.

    Haklısınız hocam. Twitter'ın mobile versiyonu üzerinden rahatlıkla Tweet atma işlemini halledebildim fakat; yazdığım program dahilinde anasayfadaki rastgele bir kullanıcıya cevap atmak istediğim zaman, Twitter'ın mobile sürümünde "yanıtla" butonuna ait hiçbir bilgi yok. Yani cevap atma kısmında tıkandığım için, projeyi bu sefer de masaüstü site üzerinden geliştirmeye devam ettim. Masaüstü site üzerinden geliştirirken de bir yere kadar geldim ve en sonunda şu buton olayında tıkandım. Konudaki ekran görüntüsü asıl proje değil. Konuyu daha iyi anlatabilmem açısından oluşturduğum ufak bir örnekti sadece..


    Bakınız, Twitter mobil sitesinde cevap butonuna ait bilgiler şunlar;
    <img alt="Yanıtla" src="https://ma.twimg.com/twitter-mobile/5741cf681d9093bab6a9982e82d75c9cdf7235db/images/sprites/detail_reply.gif">
    Başkada bir bilgi yok elimde. Ayrıca masaüstü sitesindeki mavi olan "Tweetle" butonu ile ilgili de sadece şu bilgi var elimizde;
    <button class="btn primary-btn tweet-action tweet-btn js-tweet-btn" type="button">
      <span class="button-text tweeting-text">
        <span class="Icon Icon--tweet"></span>
        Tweetle
      </span>
      <span class="button-text messaging-text">
        <span class="Icon Icon--dm Icon--small"></span>
        Mesaj gönder
      </span>
    </button>


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:35:08 -->-> Daha önceki mesaj 16:25:41 --

    VoyL adlı üyeden alıntı: mesajı görüntüle
    HtmlElementCollection html = webBrowser1.Document.GetElementsByTagName("button" );
    foreach (HtmlElement ee in html)
    {
    if (ee.GetAttribute("class").Equals("btn primary-btn tweet-action tweet-btn js-tweet-btn"))
    {
    ee.InvokeMember("click");
    break;
    }
    }

    şunu bi denermisin

    Malesef olmadı hocam. Yine Tweet oluştur ekranında kaldı program. Mavi "Tweetle" butonuna tıklamadı.