c5945152ec
This is required for users who have 2-factor authentication enabled, and is generally safer because users don't need to give their password to third-party software. |
||
---|---|---|
cmd/mstdn | ||
testdata | ||
.gitignore | ||
.travis.yml | ||
accounts_test.go | ||
accounts.go | ||
apps_test.go | ||
apps.go | ||
compat.go | ||
example_test.go | ||
helper_test.go | ||
helper.go | ||
instance_test.go | ||
instance.go | ||
LICENSE | ||
mastodon_test.go | ||
mastodon.go | ||
notification_test.go | ||
notification.go | ||
README.md | ||
report_test.go | ||
report.go | ||
status_test.go | ||
status.go | ||
streaming_test.go | ||
streaming_ws_test.go | ||
streaming_ws.go | ||
streaming.go | ||
unixtime.go |
go-mastodon
Usage
Application
package main
import (
"context"
"fmt"
"log"
"github.com/mattn/go-mastodon"
)
func main() {
app, err := mastodon.RegisterApp(context.Background(), &mastodon.AppConfig{
Server: "https://mstdn.jp",
ClientName: "client-name",
Scopes: "read write follow",
Website: "https://github.com/mattn/go-mastodon",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("client-id : %s\n", app.ClientID)
fmt.Printf("client-secret: %s\n", app.ClientSecret)
}
Client
package main
import (
"context"
"fmt"
"log"
"github.com/mattn/go-mastodon"
)
func main() {
c := mastodon.NewClient(&mastodon.Config{
Server: "https://mstdn.jp",
ClientID: "client-id",
ClientSecret: "client-secret",
})
err := c.Authenticate(context.Background(), "your-email", "your-password")
if err != nil {
log.Fatal(err)
}
timeline, err := c.GetTimelineHome(context.Background(), nil)
if err != nil {
log.Fatal(err)
}
for i := len(timeline) - 1; i >= 0; i-- {
fmt.Println(timeline[i])
}
}
Status of implementations
- GET /api/v1/accounts/:id
- GET /api/v1/accounts/verify_credentials
- PATCH /api/v1/accounts/update_credentials
- GET /api/v1/accounts/:id/followers
- GET /api/v1/accounts/:id/following
- GET /api/v1/accounts/:id/statuses
- POST /api/v1/accounts/:id/follow
- POST /api/v1/accounts/:id/unfollow
- GET /api/v1/accounts/:id/block
- GET /api/v1/accounts/:id/unblock
- GET /api/v1/accounts/:id/mute
- GET /api/v1/accounts/:id/unmute
- GET /api/v1/accounts/:id/lists
- GET /api/v1/accounts/relationships
- GET /api/v1/accounts/search
- POST /api/v1/apps
- GET /api/v1/blocks
- GET /api/v1/favourites
- GET /api/v1/follow_requests
- POST /api/v1/follow_requests/:id/authorize
- POST /api/v1/follow_requests/:id/reject
- POST /api/v1/follows
- GET /api/v1/instance
- GET /api/v1/instance/activity
- GET /api/v1/instance/peers
- GET /api/v1/lists
- GET /api/v1/lists/:id/accounts
- GET /api/v1/lists/:id
- POST /api/v1/lists
- PUT /api/v1/lists/:id
- DELETE /api/v1/lists/:id
- POST /api/v1/lists/:id/accounts
- DELETE /api/v1/lists/:id/accounts
- POST /api/v1/media
- GET /api/v1/mutes
- GET /api/v1/notifications
- GET /api/v1/notifications/:id
- POST /api/v1/notifications/clear
- GET /api/v1/reports
- POST /api/v1/reports
- GET /api/v1/search
- GET /api/v1/statuses/:id
- GET /api/v1/statuses/:id/context
- GET /api/v1/statuses/:id/card
- GET /api/v1/statuses/:id/reblogged_by
- GET /api/v1/statuses/:id/favourited_by
- POST /api/v1/statuses
- DELETE /api/v1/statuses/:id
- POST /api/v1/statuses/:id/reblog
- POST /api/v1/statuses/:id/unreblog
- POST /api/v1/statuses/:id/favourite
- POST /api/v1/statuses/:id/unfavourite
- GET /api/v1/timelines/home
- GET /api/v1/timelines/public
- GET /api/v1/timelines/tag/:hashtag
Installation
$ go get github.com/mattn/go-mastodon
License
MIT
Author
Yasuhiro Matsumoto (a.k.a. mattn)