Connect to Google Calendar using Smack API in JAVA -
can tell me how connect google calendar server using smack api, if can that.
what mean connecting google calendar using smack? smack let connect xmpp server, instant messaging means. if want similar http://clockwerx.blogspot.com/2008/10/interacting-with-google-calendar-via.html there 2 sides: implement bot , connect , talk it. speaking, here's code sample let connect gtalk:
import org.jivesoftware.smack.chat; import org.jivesoftware.smack.chatmanager; import org.jivesoftware.smack.connectionconfiguration; import org.jivesoftware.smack.roster; import org.jivesoftware.smack.smackconfiguration; import org.jivesoftware.smack.xmppconnection; import org.jivesoftware.smack.xmppexception; import org.jivesoftware.smack.packet.message; import org.jivesoftware.smack.packet.presence; import org.jivesoftware.smack.proxy.proxyinfo; import org.jivesoftware.smack.connectionconfiguration.securitymode; import org.jivesoftware.smack.messagelistener; import org.jivesoftware.smack.saslauthentication; import org.jivesoftware.smack.packet.presence.type; public class communicator { public static final string xmpp_server = "talk.google.com"; public static final string xmpp_host_name = "gmail.com"; public static final string xmpp_service_name = "gmail.com"; public static final int packet_reply_timeout = 500, default_xmpp_server_port = 5222; xmppconnection conn; roster buddylist; public static string canonicalizeusername(string username) { if (!username.contains("@")) { username += "@" + xmpp_service_name; } return username; } public communicator(string username, string password) throws xmppexception { this(xmpp_server, default_xmpp_server_port, username, password); } public communicator(string serveraddress, integer serverport, string username, string password) throws xmppexception { username = canonicalizeusername(username); smackconfiguration.setpacketreplytimeout(packet_reply_timeout); connectionconfiguration config = new connectionconfiguration(serveraddress, serverport != null ? serverport : default_xmpp_server_port, xmpp_host_name, proxyinfo.fordefaultproxy()); //config.setsaslauthenticationenabled(true); //config.setsecuritymode(securitymode.disabled); //saslauthentication.supportsaslmechanism("plain"); conn = new xmppconnection(config); conn.connect(); system.out.println("connected " + serveraddress + ":" + serverport); conn.login(username, password); system.out.println("logged in " + username); setstatus(true, "on"); } public void setstatus(boolean available, string status) { presence presence = new presence(available ? type.available : type.unavailable); presence.setstatus(status); conn.sendpacket(presence); } public void destroy() throws exception { conn.disconnect(); } public boolean sendmessage(string msgtext, string to) throws xmppexception { = canonicalizeusername(to); chatmanager mgr = conn.getchatmanager(); chat chat = mgr.createchat(to, new messagelistener() { public void processmessage(chat chat, message msg) { system.out.println(msg.getbody()); } }); //important bit set message type 'chat', google seems ignore default type message msg = new message(msgtext, message.type.chat); chat.sendmessage(msg); return true; } public static void main(string args[]) { try { communicator comm = new communicator("username", "password"); comm.sendmessage("", ""); joptionpane.showmessagedialog(null, "close when want quit"); } catch(exception e) { e.printstacktrace(); } } }
Comments
Post a Comment