modulepackage
0.0.0-20170420082646-16aadfbb65c6
Repository: https://github.com/42wim/go-gitter.git
Documentation: pkg.go.dev
# README
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)
# Functions
New initializes the Gitter API client
For example: api := gitter.New("YOUR_ACCESS_TOKEN").
# Structs
APIError holds data of errors returned from the API.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Issue references issue in the message.
Mention holds data about mentioned user in the message.
No description provided by the author
No description provided by the author
Pagination params.
A Room in Gitter can represent a GitHub Organization, a GitHub Repository, a Gitter Channel or a One-to-one conversation.
Stream holds stream data.
URL presented in the message.
No description provided by the author