Ogłoszenie

Zwiń
No announcement yet.

Dziwny błąd wiadomości

Zwiń
X
 
  • Filtr
  • Czas
  • Pokaż
Wyczyść wszystko
new posts

    Dziwny błąd wiadomości

    Witam serdecznie! Otóż mam taki problem, np.: piszę wiadomość /u i wyświetlają się zalogowani, po czym przychodzi pusta wiadomość. error_reporting(0); czyli wyłączenie błędów php-owskich nic nie pomaga. Co może być nie tak? Dodam że mam też boty w tym samym folderze, te same pliki o takiej samej zawartości co ten(oprócz danych bazy mysql i api), i tylko na tym jednym bocie mam ten problem. Co to może być? ;x
    Dodam też że polskich znaków w skrypcie nie używam.

    #2
    jak wysyłasz wiadomość? Metodą push czy reply?
    GaduNews.pl
    Polska ekipa GTA:Online

    Komentarz


      #3
      Push.

      Komentarz


        #4
        No właśnie, a powinieneś użyć reply. Generalnie jeśli piszesz do numeru i odpowiedź ma wrócić do Ciebie (czyli do nadawcy) to wykorzystuj reply.
        GaduNews.pl
        Polska ekipa GTA:Online

        Komentarz


          #5
          Wiem, ale na innych botach działa bezproblemowo i to mnie dziwi ;/

          - - - Updated - - -

          Jednak działa, dziękuje ślicznie

          Komentarz


            #6
            kodowanie znaków
            CzatGG: Kliknij!
            Moje GG: Kliknij!

            Komentarz


              #7
              Dobra ale to jest błąd ogólny z push.. Bo wysyłam jedną za pomocą push i w tym miejscu od razu jest ta pusta wiadomosc.

              Komentarz


                #8
                Majcon czytaj dokladnie. Napisal ze Pl znaków nie używa. A z tego co wiem. Kodowanie ma na utf-8 bez BOM.
                Co do tej usterki dział botów powinien ją w końcu naprawic...

                Komentarz


                  #9
                  tez blad tez juz dawno zglosilem.. Oczywiscie odpisali odsylajac mnie na forum. Jak dla mnie bez sensu.
                  Ostatnio edytowany przez ravas; [ARG:4 UNDEFINED]. Powód: poprawka
                  Zamieszczone przez Becca Fitzpatrick
                  Pamiętaj, że człowiek się zmienia, jednak jego przeszłość nigdy.
                  Zamieszczone przez Bob Dylan
                  Don’t criticize what you can’t understand

                  Komentarz


                    #10
                    Zgłosiłem bota łamiącego regulamin.. 0 reakcji.. Pisałem o tych pustych wiadomościach.. 0 reakcji.. Za co dostają pieniądze? Po jaką cholerę zatrudniają w Gadu Gadu takie osoby, które nie potrafią pomóc? Przesada.

                    Komentarz


                      #11
                      A więc wysyłam wiadomość do wszystkich:
                      $m->addText($uzytkownik.$wiadomosc)->setRecipients($wszyscy);
                      $p->push($m);
                      i po wysłaniu wiadomości znów pusta wiadomość ;x . co zrobic? ;x

                      Komentarz


                        #12
                        Drobna prośba, używajcie tagu [PHP] na forum do oznaczania kodu.

                        Pusta wiadomość pojawi się w momencie gdy wywołanie skryptu wypluje dowolny biały znak lub gdy skorzystasz z $m->reply();
                        Może spróbuj dać die(); zaraz po wysłaniu wiadomości pushem?
                        GaduNews.pl
                        Polska ekipa GTA:Online

                        Komentarz


                          #13
                          Skrypt wypluje biały znak wtedy gdy nie użyje reply właśnie, ale wiadomość do wszystkich na reply coś mi nie działa. Już próbowałem i nic.

                          Komentarz


                            #14
                            Mamy nadzieję, że trochę przykładów pomoże zrozumieć działanie platformy BotAPI GG oraz rozwiązać problem użytkownika Pezet.

                            Przykład 1:
                            Kod php:
                            <?
                                require_once('MessageBuilder.php');
                                $M = new MessageBuilder();
                                $M->reply();
                            Opis 1:
                            Numer gg:123 pisze wiadomość do bota.
                            Bot odpowiada pustą wiadomością do nadawcy czyli do numeru gg:123 ponieważ wiadomość jest zgodna z protokołem BotAPI (chociaż jest pusta).

                            Przykład 2:
                            Kod php:
                            <?
                                require_once('MessageBuilder.php');
                                $M = new MessageBuilder();
                                $M->addText('TEST');
                                $M->reply();
                            Opis 2:
                            Numer gg:456 pisze wiadomość do bota.
                            Bot odpowiada wiadomością o treści TEST do nadawcy czyli numeru gg:456

                            Przykład 3:
                            Kod php:
                            <?
                                require_once('MessageBuilder.php');
                                $M = new MessageBuilder();
                                $M->addText('TEST')->setRecipients(array(123,456,789));
                                $M->reply();
                            Opis 3:
                            Numer gg:123 pisze do bota wiadomość o treści: WYPISZ
                            Numer gg:123 dostanie systemową odpowiedź:
                            Subskrypcja wiadomości została wyłączona. Aby włączyć subskrypcję, napisz: ZAPISZ
                            Następnie numer gg:123 pisze do bota kolejną wiadomość.
                            Bot odpowiada wiadomością o treści TEST tylko do numeru gg:456 ponieważ:
                            a) w przypadku użycia metod setRecipients() i reply() numer gg:123 nie otrzyma wiadomości od tego bota ponieważ wypisał się z subskrypcji wiadomości,
                            b) numer gg:456 już wcześniej w Przykładzie 2 napisał do tego bota wiadomość więc bot może się do niego odezwać,
                            c) numer gg:789 nigdy nie napisał wiadomości do bota zatem bot nie może sie do niego odezwać.

                            Przykład 4:
                            Kod php:
                            <?
                              require_once('MessageBuilder.php');
                              require_once('PushConnection.php');
                              $M = new MessageBuilder();
                              $P = new PushConnection(777, 'wojtek@gg.pl', 'hasło');
                              $M->addText('Dziękujemy za wiadomość.');
                              $M->reply();
                              $M->clear();
                              $M->addText('Wiadomość od użytkownika: '.$_GET['from'].' o treści: '.$HTTP_RAW_POST_DATA);
                              $M->setRecipients(array(123,456));
                              $P->push($M);
                            Opis 4:
                            Numer gg:123 pisze do bota wiadomość o treści: HEJ
                            Bot odpowiada wiadomością o treści: "Dziękujemy za wiadomość" do numeru gg:123 ponieważ została użyta metoda reply() a nadawcą wiadomości jest numer gg:123

                            Bot odpowiada wiadomością o treści: "Wiadomość od użytkownika: 123 o treści: HEJ" do numeru gg:456
                            ponieważ numer gg:456 jest zdefiniowany w setRecipients(). Numer gg:456 nie dostanie wiadomości "Dziękujemy za wiadomość." ponieważ wcześniej została używa metoda clear().

                            Numer gg:123 nie dostanie wiadomości o treści: "Wiadomość od użytkownika: 123 o treści: HEJ" mimo że jest wpisany w setRecpipents() ponieważ wcześniej w Przykładzie 3 wypisał się z subskrypcji wiadomości od tego bota.

                            Przykład 5:
                            Kod php:
                            <?
                              require_once('MessageBuilder.php');
                              require_once('PushConnection.php');
                              $M = new MessageBuilder();
                              $P = new PushConnection(777, 'wojtek@gg.pl', 'hasło');
                              $M->addText('TEST')->setRecipients(array(123,456));
                              $P->push($M);
                              $M->clear();
                              $M->reply();
                            Opis 5:
                            Numer gg:123 pisze do bota wiadomość o treści: ZAPISZ
                            Numer gg:123 dostanie systemową odpowiedź: Subskrypcja wiadomości została włączona. Aby wyłączyć subskrypcję, napisz: WYPISZ
                            Następnie numer gg:123 pisze do bota kolejną wiadomość.
                            Bot odpowiada wiadomością o treści TEST do numeru gg:123 oraz do numeru gg:456
                            Bot odpowiada dodatkowo pustą wiadomością do numeru gg:123 ponieważ ten numer jest nadawcą wiadomości i jego dotyczy metoda reply() ale jeszcze przed jej użyciem jest wywołanie metody clear().

                            Wnioski:
                            Spoglądając w logi platformy BotAPI jesteśmy prawie pewni, że właśnie tak jak w Przykładzie 5 wygląda lub wyglądała sytuacja u użytkownika Pezet. Niepotrzebnie na końcu dodawany jest reply(). Zatem po napisaniu do bota wiadomości "/u", o której mowa w pierwszym poście w wątku bot odpowiada wiadomością za pomocą metody push() i zwraca w niej osoby zalogowane. Natomiast potem jest jeszcze prawdopodobnie metoda clear() oraz reply(), które wysyłają dodatkową pustą wiadomość.

                            Należy również pamiętać o tym, że w przypadku żądania typu PULL, w którym użyje się metod setRecipients() i reply() tablica odbiorców może mieć maksymalnie 250 numerów GG.

                            Należy również zwrócić uwagę na to, że używając metody setRecipients() oraz reply() w przypadku żądań typu PULL wiadomości nie dotrą do osób, które wypisały się z subskrypcji wiadomości za pomocą polecenia WYPISZ jak i do tych osób, które nigdy nie napisały żadnej wiadomości do bota.

                            Komentarz


                              #15
                              Nie używam już metody push, gdyż faktycznie źle działa. Najgorsze było gdy setRecipients(np.: 20 odbiorcow-beze mnie) oraz metoda push(). przed użyłem nawet metody clear() i nic. Wczoraj pusta wiadomość znikła sama z siebie także nie wiem o co tu chodziło. I pusta wiadomość była tylko i wyłącznie na moim bocie, na innych nie było a były na tych samych skryptach. Od nowa napiszę skrypt, bo może gdzieś się coś "burzy". Dziękuje za pomoc wszystkim.

                              Komentarz

                              Pracuję...
                              X