/go-misskey

Misskey Go SDK

Primary LanguageGoGNU General Public License v3.0GPL-3.0

Go Report Card Coverage Status GoDoc Chat on Matrix

Misskey Go SDK

Misskey API Documentation: https://slippy.xyz/api-doc

Check the docs directory for more information.

For examples on given endpoints, please check the corresponding _test.go file, they have at least one ExampleService_XYZ function, examples:

Progress

Status Endpoint Group Implementation Issue Note
antennas #3
app #5
clips #8
drive #9
federation #4
following #10
groups #19
hashtags #12
meta
notes #6
notifications #15
reactions #14
⚠️ admin #21 In Progress (84%)
account
auth
channels
charts #7
list #20
messaging #13
pages #16
users #17

How to use

For detailed examples, check the example directory.

package main

import (
  "log"

  "github.com/sirupsen/logrus"
  "github.com/yitsushi/go-misskey"
  "github.com/yitsushi/go-misskey/core"
  "github.com/yitsushi/go-misskey/services/meta"
)

func main() {
	client, err := misskey.NewClientWithOptions(
		misskey.WithAPIToken(os.Getenv("MISSKEY_TOKEN")),
		misskey.WithBaseURL("https", "slippy.xyz", ""),
		misskey.WithLogLevel(logrus.DebugLevel),
	)
	if err != nil {
		logrus.Error(err.Error())
	}

  stats, err := client.Meta().Stats()
  if err != nil {
    log.Printf("[Meta] Error happened: %s", err)
    return
  }

  log.Printf("[Stats] Instances:          %d", stats.Instances)
  log.Printf("[Stats] NotesCount:         %d", stats.NotesCount)
  log.Printf("[Stats] UsersCount:         %d", stats.UsersCount)
  log.Printf("[Stats] OriginalNotesCount: %d", stats.OriginalNotesCount)
  log.Printf("[Stats] OriginalUsersCount: %d", stats.OriginalUsersCount)
}

How can I get a Misskey Token?

Navigate to Settings > API and there you generate a new token.

How can I debug what's wrong?

There is a logging system, right now it's not very wide spread in the codebase, but if you turn it on, you will be able to see:

  • all request with method, endpoint and body
  • all responds with status code, from what endpoint told and the body

To enable debug mode, just change the LogLevel to DebugLevel:

client, _ := misskey.NewClientWithOptions(
  misskey.WithAPIToken(os.Getenv("MISSKEY_TOKEN")),
  misskey.WithBaseURL("https", "slippy.xyz", ""),
  misskey.WithLogLevel(logrus.DebugLevel),
)

The output should look like this:

DEBU[0000] POST https://slippy.xyz/api/antennas/show     _type=request
DEBU[0000] {"antennaId":"8dbpybhulw","i":"my misskey token"}  _type=request
DEBU[0000] {"id":"8dbpybhulw","createdAt":"2020-10-13T16:03:22.674Z","name":"Genshin Impact","keywords":[["genshin"]],"excludeKeywords":[[""]],"src":"all","userListId":null,"userGroupId":null,"users":[""],"caseSensitive":false,"notify":false,"withReplies":true,"withFile":false,"hasUnreadNote":false}  _type=response code=200 from="https://slippy.xyz/api/antennas/show"