2015-01-13 16 views
7

Ho bisogno di aiuto con il mio progetto java. Attualmente sto cercando di inviare un messaggio in una conversazione Skype quando si verifica un'azione specifica.Invio di messaggi Skype in Java, utilizzando java-skype api da taskan

Per questo, sto usando il java-skype API v1.4 by taskan.

Ecco il mio codice:

try { 
    for (Group group : Skype.getContactList().getAllGroups()) { 
     if ((group.getDisplayName()).equals("Nameofthegroup")) { //Whatever the group name is 
      String id = group.getId(); 
      Skype.chat(id).send(ep.getDisplayName() + " joins !"); 
      ep.sendMessage("Die ID: "+ id); 
     } 
    } 
} catch (Exception e3) { 
    e3.printStackTrace(); 
} 

Ho anche provato:

try { 
    String id = Skype.getContactList().getGroup("Groupname").getId(); 
    Skype.chat(id).send(p + "joins!"); 
} catch (SkypeException e1) { 
    // TODO Auto-generated catch block 
    e1.printStackTrace(); 
} 

Il mio problema è che Skype registra che un programma esterno cerca di fare qualcosa, ma dopo che ho consentire l'accesso per Java , non succede nient'altro Nessun messaggio inviato.

+0

Questo non è correlato alla tua domanda, ma vorrei dire che, dopo aver visto alcune domande con poca o nessuna sforzo messo in, è rinfrescante per vedere uno che ce l'ha. –

+0

bisogno di aiuto hanno ancora il problema. –

+0

Quindi segui le istruzioni di Captain_D1 e dicci cosa 'ep' è. –

risposta

0

Non so molto sull'API di Skype, ma è possibile controllare l'samples per aiuto. Se si desidera inviare un messaggio di chat quando qualcuno ti invia un messaggio di chat è possibile utilizzare l'esempio AutoAnswering:

package com.skype.sample; 

import com.skype.ChatMessage; 
import com.skype.ChatMessageAdapter; 
import com.skype.Skype; 
import com.skype.SkypeException; 

public class AutoAnswering { 
    public static void main(String[] args) throws Exception { 
     Skype.setDaemon(false); // to prevent exiting from this program 
     Skype.addChatMessageListener(new ChatMessageAdapter() { 
      public void chatMessageReceived(ChatMessage received) throws SkypeException { 
       if (received.getType().equals(ChatMessage.Type.SAID)) { 
        received.getSender().send("I'm working. Please, wait a moment."); 
       } 
      } 
     }); 
    } 
} 

Il codice ha una variabile non definita ep in esso e non posso dare una risposta migliore a causa di quella. Avrei fatto un commento chiedendo al riguardo, ma Stack Overflow non consente a nuove persone di fare commenti.

+0

grazie ma non ho bisogno di un ascoltatore. voglio semplicemente inviare il messaggio ma non funziona :( –

4

Siamo spiacenti per la risposta in ritardo ma assumendo che tu non abbia ancora scelto una risposta il problema è ancora aperto.

Stavo cercando di ottenere gruppi allo stesso modo con te, ma sfortunatamente non funziona così. Non lo faccio se questo è un problema API o semplicemente perché microsoft dropped support from third party APIs alcune delle sue funzionalità non funziona.

Sono riuscito a risolvere il problema cercando le chat non per i gruppi. Inoltre sarebbe molto più semplice se aggiungi un segnalibro (aggiungi ai preferiti) alla chat (gruppo) che vuoi trovare.

,

Ho solo la chat di gruppo nei miei preferiti, quindi è super facile recuperarlo! Se hai più chat e hai bisogno di un modo più generale per trovarne uno specifico ci sono anche diversi modi per farlo.

for (Chat c : Skype.getAllChats()){ 
     c.getAllMembers(); 
     c.getId(); 
     c.getWindowTitle(); 
    } 
    group = c; 

Ma questo sarebbe più difficile. Il metodo getId() potrebbe sembrare più semplice ma non sono riuscito a farlo funzionare. Non so ancora se fosse il mio problema o solo l'API, ma qualsiasi cosa ho provato semplice non ha funzionato. E non dimenticare di stampare i risultati alla console per alleggerirti.

Alla fine, se si riesce a ottenere il vostro gruppo di chat è davvero facile per inviare un messaggio:

group.send("Hi chat! This is java!!"); 

EDIT

questa API funziona solo per le chat p2p. Se si desidera creare una chat p2p, è necessario utilizzare il comando /createmoderatedchat in qualsiasi chat e verrà creata una nuova chat p2p vuota. Qualsiasi altro gruppo sarà basato su cloud automatico.

Verificate anche this

SECONDO EDIT

API è completamente morto

+0

sì ho ancora il problema :) proverò questo domani grazie per la tua risposta :)) spero che funzionerà –

+0

se hai bisogno di più aiuto fammi sapere –

+0

si hanno un problema ... :) funziona per groupchats? perché se provo ottengo l'errore: NotAttachedException? –