mastodon client module for Haskell
If you don't have client id and client secret, call postApps at first. (Alternatively, in the web client, under the development section of your mastodon profile settings,
import Web.Hastodon
appRes <- postApps "mastodon.social" "HastodonClientApp"
case appRes of
Right app -> do
let clientId = oauthClientClientId app
let clientSecret = oauthClientClientSecret app
Fill client id, client secret, the email address used to sign up for the instance and password, then call functions.
import Web.Hastodon
main :: IO ()
main = do
let clientId = "???"
let clientSecret = "???"
let email = "???"
let password = "???"
maybeClient <- mkHastodonClient clientId clientSecret email password "mastodon.social"
case maybeClient of
Just client -> do
timeline <- getAccountById client 93150
print timeline
result <- postStatus client "test toot from hastodon!"
print result
Nothing -> do
putStrLn "Failed to log in. Be careful regarding the spelling of your email and password."
- 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
- POST /api/v1/accounts/:id/block
- POST /api/v1/accounts/:id/unblock
- POST /api/v1/accounts/:id/mute
- POST /api/v1/accounts/:id/unmute
- 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
- 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
- the interface of POST /oauth/token
MIT
Ryo Okubo syucream1031@gmail.com