The [Stack Exchange chat network](https://chat.stackexchange.com) does not currently have an API. However, after spending a bit of time in Chrome's Inspector, I was able to reverse-engineer most of the requests and responses travelling back and forth between client and server. This package is the result of that effort. ### Basic Usage You will need access to an account that uses Stack Exchange credentials (email and password). Other forms of authentication are not yet supported. For simplicity, the examples below do _not_ demonstrate proper error handling. Import the package: import "github.com/nathan-osman/go-sechat" Create a new `Conn` object, representing a connection to the chat server: c, _ := sechat.New("[email protected]", "passw0rd", 1) <sup>* the third parameter is the initial room to join</sup> Since authentication and connection are done asynchronously, waiting for them to complete is highly recommended: if !c.WaitForConnected() { // yell, kick, and scream } Join the room with ID `201`: c.Join(201) Post a message in the room: c.Send(201, "Testing go-sechat...") Process all direct replies: for e := range c.Events { if e.IsMention { log.Println(e.Content) } } Create a new room with a particular user: roomId, _ := c.NewRoomWithUser(1234, "Room Name") Close the connection: c.Close() ### Documentation You can learn more about the package by visiting its documentation page: https://godoc.org/github.com/nathan-osman/go-sechat ### Source Code The source code is released under the [MIT license](http://opensource.org/licenses/MIT) and can be viewed here: https://github.com/nathan-osman/go-sechat