2015-01-13 42 views
7

Tôi cần trợ giúp với dự án java của tôi. Tôi hiện đang cố gắng gửi thư trong cuộc trò chuyện qua Skype khi một hành động cụ thể xảy ra.Gửi tin nhắn Skype trong Java, sử dụng api java-skype bởi taskan

Đối với điều này, tôi đang sử dụng java-skype API v1.4 by taskan.

Dưới đây là mã của tôi:

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(); 
} 

Tôi cũng đã thử:

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

Vấn đề của tôi là Skype đăng ký một chương trình bên ngoài cố gắng làm điều gì đó, nhưng sau khi tôi cho phép truy cập cho Java , không có gì khác xảy ra. Không có tin nhắn nào được gửi.

+0

này không liên quan đến câu hỏi của bạn, nhưng tôi muốn nói rằng, sau khi nhìn thấy một số câu hỏi với ít hoặc không nỗ lực đưa vào, nó làm mới để xem một trong đó có nó. –

+0

cần trợ giúp vẫn gặp sự cố. –

+0

Vì vậy, hãy làm theo hướng dẫn của Captain_D1 và cho chúng tôi biết 'ep' là gì. –

Trả lời

0

Tôi không biết nhiều về API Skype, nhưng bạn có thể kiểm tra số samples để được trợ giúp. Nếu bạn muốn gửi một tin nhắn trò chuyện khi ai đó gửi cho bạn một tin nhắn trò chuyện bạn có thể sử dụng ví dụ 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."); 
       } 
      } 
     }); 
    } 
} 

Mã của bạn có một không xác định biến ep trong đó và tôi không thể cung cấp cho bạn một câu trả lời tốt hơn vì cái đó. Tôi đã đưa ra một bình luận hỏi về nó, nhưng Stack Overflow không cho phép người mới đưa ra nhận xét.

+0

cảm ơn nhưng tôi không cần một người nghe. Tôi chỉ đơn giản là muốn gửi tin nhắn nhưng nó không hoạt động: ( –

4

Xin lỗi vì câu trả lời muộn nhưng giả sử bạn chưa chọn câu trả lời vấn đề vẫn đang mở.

Tôi đã cố gắng để nhóm theo cùng một cách với bạn nhưng tiếc là nó không hoạt động như thế này. Tôi không nếu đây là vấn đề API hoặc chỉ vì microsoft dropped support from third party APIs một số tính năng của nó không hoạt động.

Tôi đã cố gắng giải quyết vấn đề này bằng cách tìm kiếm cuộc trò chuyện không dành cho nhóm. Ngoài ra nó sẽ dễ dàng hơn nhiều nếu bạn chỉ cần đánh dấu (thêm vào yêu thích) trò chuyện (nhóm) bạn muốn tìm.

Chat group = null; 

    for (Chat c : Skype.getAllBookmarkedChats()){ 
     group = c; 
    } 

Tôi vừa có cuộc trò chuyện nhóm trong mục yêu thích của mình nên rất dễ lấy lại! Nếu bạn có nhiều cuộc trò chuyện hơn và bạn cần một cách tổng quát hơn để tìm một cuộc trò chuyện cụ thể, cũng có một số cách để thực hiện việc này.

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

Nhưng điều này sẽ khó hơn. Cách getId() có thể trông dễ dàng hơn nhưng tôi không quản lý nó. Không biết một lần nữa nếu đó là vấn đề của tôi hoặc chỉ API nhưng bất cứ điều gì tôi đã thử đơn giản chỉ không hoạt động. Và đừng quên in kết quả của bạn tại bàn điều khiển để dễ dàng.

Cuối cùng nếu bạn quản lý để có được nhóm bạn trò chuyện nó là rất dễ dàng để gửi một thông điệp:

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

EDIT

api này chỉ hoạt động cho chat p2p. Nếu bạn muốn tạo một cuộc trò chuyện p2p, bạn cần sử dụng lệnh /createmoderatedchat trong bất kỳ cuộc trò chuyện nào và nó sẽ tạo một cuộc trò chuyện p2p trống mới. Bất kỳ nhóm nào khác sẽ tự động dựa trên đám mây.

Ngoài ra kiểm tra this

EDIT THỨ HAI

API là hoàn toàn chết

+0

vâng tôi vẫn còn có vấn đề :) tôi sẽ cố gắng này vào ngày mai nhờ câu trả lời của bạn :)) hy vọng nó sẽ làm việc –

+0

nếu bạn cần trợ giúp thêm chỉ cho tôi biết –

+0

có vấn đề ... :) việc này có hoạt động đối với nhóm không? bởi vì nếu tôi thử nó tôi nhận được lỗi: NotAttachedException? –

Các vấn đề liên quan