Skocz do zawartości


Zdjęcie

Tworzenie czatu, a konto GMail

czat sdk delphi gmail tworzenie

  • Zaloguj się, aby dodać odpowiedź
8 odpowiedzi w tym temacie

#1 Sauler

Sauler

    Bywalec

  • Użytkownik
  • 210 postów

Napisano 2014.09.01, 19:25

Cześć,

Natrafiłem na pewien problem w trakcie tworzenia nowego okna czatu.

Czat tworzę w ten sposób:

 chat.cbSize := SizeOf(TPluginChatOpen);
  chat.JID := PWideChar('#aqq_test@plugin.irc.aqq.eu');
  chat.UserIdx := PluginAccountId; //id konta wtyczki
  chat.Channel := PWideChar('Testowy czat');
  chat.NewWindow := false;
  chat.Nick := PWideChar('Sauler');
  chat.IsNewMsg := false;
  chat.Priority := false;
  chat.OriginJID := PWideChar('#aqq_test@plugin.irc.aqq.eu');
  chat.ImageIndex := Icons[IRC_ICON]; //ikona
  chat.AutoAccept := true;
  chat.ChatMode := CHATMODE_NORMAL;

 PluginLink.CallService(AQQ_SYSTEM_CHAT_OPEN, 0, lParam(@chat));

I tu się pojawiają dwa problemy:

  1. Jeżeli w AQQ mam dodane konto gmail to czat się otwiera, lecz nie mogę wysłać wiadomości, aby była widoczna w oknie czatu. W Konsoli XML widać, że pakiety są przesyłane poprzez konto gmail(dlaczego nie jabber?). Przy wysyłaniu wiadomości otrzymuję: 
    19:23:32 < Sent Length: 176
    <message type="groupchat" to="test@plugin.irc.aqq.eu" from="sauler1995@gmail.com/AQQF95EE801">
      <body>test</body>
      <active xmlns="http://jabber.org/protocol/chatstates"/>
    </message>
    
    
    19:23:33 > Recv Length: 282
    <message type="error" to="sauler1995@gmail.com/AQQF95EE801" from="test@plugin.irc.aqq.eu">
      <body>test</body>
      <active xmlns="http://jabber.org/protocol/chatstates"/>
      <error code="404" type="cancel">
        <remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
      </error>
    </message>
    
  2. Zaś jeżeli usunę konto gmail to dostaję "Access violation" i czat nie pokazuje się.

Siedzę już nad tym pół dnia i nic nie mogę wymyślić, liczę, że ktoś wpadnie na jakiś pomysł :)


Użytkownik Sauler edytował ten post 2014.09.01, 19:38


#2 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5023 postów

Napisano 2014.09.01, 20:07

To otwierania zakładki z czatem użyj funkcji AQQ_SYSTEM_CHAT :)

#3 Sauler

Sauler

    Bywalec

  • Użytkownik
  • 210 postów

Napisano 2014.09.01, 20:19

Ten sposób nie działa tak jak chcę. Tzn. próbuje otworzyć/stworzyć czat na danym serwerze.

A mi chodzi o otwarcie własnego okna w którym wtyczka wysyłam/odbieram wiadomości.



#4 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5023 postów

Napisano 2014.09.01, 20:28

Nie rozumiem Cię, obie funkcje robią to samo - otwierają nowe okno z czatem/konferencją z tym, że Ty używasz funkcji przeznaczonej dla wtyczek sieciowych.

#5 Sauler

Sauler

    Bywalec

  • Użytkownik
  • 210 postów

Napisano 2014.09.01, 20:34

Piszę wtyczkę sieciową, więc używam tej funkcji :P Funkcja o której mówiłeś chce stworzyć normalny czat na serwerze jabber. 

Ja chcę po prostu otworzyć okno czatu niezwiązane z żadnym innym kontem. Coś jak konferencja gg. Przy tworzeniu okna posiłkuję się tym postem: http://forum.aqq.eu/...-sdk-do-czatow/



#6 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5023 postów

Napisano 2014.09.01, 20:43

Hmmm okej czaję, no ale indeks konta zły podajesz moim zdaniem - dla wtyczek powinno to być 0.

#7 Sauler

Sauler

    Bywalec

  • Użytkownik
  • 210 postów

Napisano 2014.09.01, 20:55

Indeks konta jest dobry, wtyczki sieciowe otrzymują własny, który mam zapisany w zmiennej PluginAccountId.

Dla testu zmieniłem indeks na 0 i od przy wysyłaniu struktury mam Access violation.

 

Edit:

 

Access violation nie występował z powodu ustawienia indeksu konta na 0. Teraz pakiety są wysyłane poprzez konto Jabber, lecz teraz jest taki błąd w konsoli przy wysyłaniu:

21:02:44 < Sent Length: 184
<message type="groupchat" to="test@plugin.irc.aqq.eu" from="sauler@jix.im/25851643441409597959649285">
  <body>test</body>
  <active xmlns="http://jabber.org/protocol/chatstates"/>
</message>


21:02:44 > Recv Length: 290
<message from='test@plugin.irc.aqq.eu' to='sauler@jix.im/25851643441409597959649285' type='error'>
  <body>test</body>
  <active xmlns='http://jabber.org/protocol/chatstates'/>
  <error code='404' type='cancel'>
    <remote-server-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
  </error>
</message>

Użytkownik Sauler edytował ten post 2014.09.01, 21:03


#8 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5023 postów

Napisano 2014.09.02, 11:39

W każdym logu z konsoli XML widać, że wiadomości są wysyłane z konta Jabber a nie poprzez wtyczkę. Poza tym masz przy otwieraniu bug - "chat.IsNewMsg := false;" i może dlatego nie działa bo powinno być true :P

#9 Sauler

Sauler

    Bywalec

  • Użytkownik
  • 210 postów

Napisano 2014.09.02, 16:27

Już poprawiłem, teraz wysyłanie odbywa się za pomocą wtyczki.

"chat.IsNewMsg := false" jest dobrze. W sdk pisze, że jeśli ustawimy na true to okno zostanie podświetlone na pasku zadań.

 

Z wyświetlaniem wiadomości zrobię zapewne tak, że wiadomość użytkownika będzie wysyłana na serwer, a serwer będzie ją odsyłał. Wtedy wystarczy przy odbieraniu wiadomości dodać ją do czatu.

 

Edit:

 

Coś jest nie halo z funkcją AQQ_CONTACTS_MESSAGE. Wypełniam całą strukturę TPluginMessage, a funkcja nie wykonuje się. Tzn. po użyciu tej funkcji powinienem dostać w logu informację o jej wykonaniu:

Form1.Memo1.Lines.Add('AQQFunctions: Before AQQ_CONTACTS_MESSAGE execute'); //tą wiadomość dostaję w logu
Result := PluginLink.CallService(AQQ_CONTACTS_MESSAGE, 0, lParam(@ChatMessage));
Form1.Memo1.Lines.Add('AQQFunctions: After AQQ_CONTACTS_MESSAGE execute');  //tej już nie


Użytkownik Sauler edytował ten post 2014.09.02, 21:03






Również z jednym lub większą ilością słów kluczowych: czat, sdk, delphi, gmail, tworzenie

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych