Search code examples
lotusinstant-messagingsametime

How can I send a message to a SameTime user from another system?


I guess what I'm asking is what methods are available to send SameTime messages to users? The version is the one integrated into Notes 8.5.

Is there a command line, a web service, a .Net API, a Java API, LotusScript Orr something else?


Solution

  • There is a free Java API available here. The excerpt below is a simple example of how to send a message.

    final STSession session = new STSession("SameTimeSender");
    session.loadAllComponents();
    session.start();
    
    CommunityService comm = (CommunityService) session.getCompApi(CommunityService.COMP_NAME);
    comm.addLoginListener(new LoginListener() {
    
        public void loggedOut(LoginEvent arg0) {
        }
    
        public void loggedIn(LoginEvent arg0) {
            LookupService lookup = (LookupService) session.getCompApi(LookupService.COMP_NAME);
            Resolver resolver = lookup.createResolver(true, false, true, false);
            resolver.addResolveListener(new ResolveListener() {
    
                public void resolved(ResolveEvent re) {
                    STUser user = (STUser) re.getResolved();
    
                    InstantMessagingService imservice = (InstantMessagingService) session.getCompApi(InstantMessagingService.COMP_NAME);
    
                    final Im im = imservice.createIm(user, EncLevel.ENC_LEVEL_NONE, ImTypes.IM_TYPE_CHAT);
                    im.addImListener(new ImListener() {
    
                        public void textReceived(ImEvent arg0) {
                        }
    
                        public void openImFailed(ImEvent arg0) {
                        }
    
                        public void imOpened(ImEvent arg0) {
                            im.sendText(false, "hello world!");
                        }
    
                        public void imClosed(ImEvent arg0) {
                        }
    
                        public void dataReceived(ImEvent arg0) {
                        }
                    });
                    im.open();
                }
    
                public void resolveFailed(ResolveEvent arg0) {
                }
    
                public void resolveConflict(ResolveEvent arg0) {
                }
            });
    
            resolver.resolve(recipientId);
        }
    });
    
    comm.loginByPassword(hostname, userId, password);