Mastodon API Client for node - forked from node-mastodon [abandoned]
Source on GitHub | Documentation
- I forked this project and fixed the obvious issues / updated the packages, and replaced
request
withaxios
. - I added tests using Bun.sh runtime and test environment.
- Introduced individual HTTP methods (get, post, put, etc.) alongside the generic request method.
If you find any bugs please open an issue and I will handle it as soon as I can. Thanks!
npm install tusk-mastodon
var Tusk = require("tusk-mastodon");
var T = new Tusk({
access_token: "...",
timeout_ms: 60 * 1000, // optional HTTP request timeout to apply to all requests.
api_url: "https://mastodon.social/api/v1/", // optional, defaults to https://mastodon.social/api/v1/
});
Create a Tusk
instance that can be used to make requests to Mastodon's APIs. Only supports oauth2 access tokens (no username/password auth) for security reasons.
I advise that you use the oauth package to get the user's access_token. More information about how to do that is on the node-mastodon wiki.
You'll need to register your app on Mastodon first as well.
If authenticating with user context, config
should be an object of the form:
{
access_token: '...'
}
GET any of the REST API endpoints.
path
The endpoint to hit.
params
(Optional) parameters for the request.
callback
function (err, data, response)
-
data
is the parsed data received from Mastodon. -
response
is the http.IncomingMessage received from Mastodon.
POST any of the REST API endpoints. Same usage as T.get()
.
Get the client's authentication tokens.
Update the client's authentication tokens.
- Install Bun
curl -fsSL https://bun.sh/install | bash # for macOS, Linux, and WSL
- Run Tests
bun test
T.get("timelines/home", {}).then((resp) => console.log(resp.data));
var id;
T.post("media", { file: fs.createReadStream("path/to/image.png") }).then((resp) => {
id = resp.data.id;
T.post("statuses", { status: "#selfie", media_ids: [id] });
});