我的java项目需要帮助。我正在尝试在特定操作发生时在Skype对话中发送消息。
为此,我使用java-skype API v1.4 by taskan。
这是我的代码:
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();
}
我也尝试过:
try {
String id = Skype.getContactList().getGroup("Groupname").getId();
Skype.chat(id).send(p + "joins!");
} catch (SkypeException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
我的问题是Skype注册外部程序试图做某事,但在我允许访问Java之后,没有其他事情发生。没有消息被发送。
答案 0 :(得分:4)
对于迟到的答案感到抱歉,但假设您尚未选择答案,问题仍然存在。
我试图以同样的方式让你的团队,但不幸的是它不会像这样工作。如果这是API问题,或者仅仅因为微软dropped support from third party APIs某些功能无效,我不会这样做。
我设法通过搜索不是群组的聊天来解决这个问题。如果您只想添加(在收藏夹中添加)您要查找的聊天(群组),这将更容易。
Chat group = null;
for ( Chat c : Skype.getAllBookmarkedChats() ){
group = c;
}
我只是在我的收藏夹中进行群组聊天,因此检索它非常容易!如果您有更多聊天,并且需要更通用的方法来查找特定的聊天,还有几种方法可以做到这一点。
for (Chat c : Skype.getAllChats()){
c.getAllMembers();
c.getId();
c.getWindowTitle();
}
group = c;
但这会更难。 getId()方式可能看起来更容易,但我没有设法让它工作。不知道是不是我的问题或只是API,但无论我尝试简单只是没有工作。 不要忘记在控制台上打印您的结果以放松自己。
最后,如果您设法进行群组聊天,则发送消息非常简单:
group.send("Hi chat! This is java!!");
修改强>
此api仅适用于p2p聊天。如果你想创建一个p2p聊天,你需要在任何聊天中使用 / createmoderatedchat 命令,它将创建一个新的空p2p聊天。任何其他组都将自动基于云。
同时检查this
第二次编辑
API完全死了
答案 1 :(得分:0)
我对Skype API了解不多,但您可以查看samples以获取帮助。如果您想在有人向您发送聊天消息时发送聊天消息,您可以使用自动应答示例:
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.");
}
}
});
}
}
您的代码中包含一个未定义的变量ep
,因此我无法给您更好的答案。我会发表评论询问,但Stack Overflow不会让新人发表评论。