Skip to content

sromku/go-gitter

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

gitter

Gitter API in Go https://developer.gitter.im

Install

go get github.com/sromku/go-gitter

Initialize
api := gitter.New("YOUR_ACCESS_TOKEN")
Users
  • Get current user

     user, err := api.GetUser()
Rooms
  • Get all rooms

     rooms, err := api.GetRooms()
  • Get room by id

     room, err := api.GetRoom("roomID")
  • Get rooms of some user

     rooms, err := api.GetRooms("userID")
  • Join room

     room, err := api.JoinRoom("roomID", "userID")
  • Leave room

     room, err := api.LeaveRoom("roomID", "userID")
  • Get room id

     id, err := api.GetRoomId("room/uri")
  • Search gitter rooms

     rooms, err := api.SearchRooms("search/string")
Messages
  • Get messages of room

     messages, err := api.GetMessages("roomID", nil)
  • Get one message

     message, err := api.GetMessage("roomID", "messageID")
  • Send message

     err := api.SendMessage("roomID", "free chat text")
Stream

Create stream to the room and start listening to incoming messages

stream := api.Stream(room.Id)
go api.Listen(stream)

for {
    event := <-stream.Event
    switch ev := event.Data.(type) {
    case *gitter.MessageReceived:
        fmt.Println(ev.Message.From.Username + ": " + ev.Message.Text)
    case *gitter.GitterConnectionClosed:
        // connection was closed
    }
}

Close stream connection

stream.Close()
Faye (Experimental)
faye := api.Faye(room.ID)
go faye.Listen()

for {
    event := <-faye.Event
    switch ev := event.Data.(type) {
    case *gitter.MessageReceived:
        fmt.Println(ev.Message.From.Username + ": " + ev.Message.Text)
    case *gitter.GitterConnectionClosed: //this one is never called in Faye
        // connection was closed
    }
}
Debug

You can print the internal errors by enabling debug to true

api.SetDebug(true, nil)

You can also define your own io.Writer in case you want to persist the logs somewhere. For example keeping the errors on file

logFile, err := os.Create("gitter.log")
api.SetDebug(true, logFile)
App Engine

Initialize app engine client and continue as usual

c := appengine.NewContext(r)
client := urlfetch.Client(c)

api := gitter.New("YOUR_ACCESS_TOKEN")
api.SetClient(client)

Documentation

About

Gitter API in Go

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages