Medium Nodejs Client is a Node.js wrapper for the official Medium API. It allows you to retrieve user information, create posts, and access a list of publications. Additionally, you can fetch a user's post list by their username. This package includes all the official Medium REST API functionalities, with two extra capabilities: retrieving a list of posts and getting a list of post titles.
[!WARNING] The official medium api is no longer supported or maintained by Medium. Plugin can't work if medium shutdown their rest api.
View official medium documentation from here documentation here.
npm i medium-nodejs-client
Create a medium client with medium token and then use it.
import { MediumClient, PostContentFormat, PostPublishStatus, PostLicense } from "medium-nodejs-client";
// Access Token is optional, can also be set
const medium = new MediumClient('YOUR_ACCESS_TOKEN');
async function main() {
//Get the user information
const user = await medium.getUser();
//Get publication with medium userId
const publication = await medium.getPublicationsForUser({ userId: "" }) //Use medium user id from user
//Get Contributors list for a specific publication
const contributors = await medium.getContributorsForPublication({ publicationId: "" }) // Use publication id here
//Publish a new medium post
const post = await medium.createPost({
title: 'A new post',
content: '<h1>A New Post</h1><p>This is my new post.</p>',
contentFormat: PostContentFormat.HTML,
publishStatus: PostPublishStatus.DRAFT,
});
//Create post under publication
const postInPublication = await medium.createPostInPublication({
title: "A new publication post",
content: "<h1>A New Post</h1><p>This is my new post.</p>",
userId: "", //User id
publicationId: "", //Publication ID
contentFormat: PostContentFormat.HTML,
tags: ["tag1"],
canonicalUrl: "",
publishStatus: PostPublishStatus.DRAFT,
license: PostLicense.CC_40_BY
})
//See the medium documentation for response and payload types.
}
Here you need to create a medium client without providing token. Token is not required here.
import { MediumClient, MediumPostResponse } from 'medium-nodejs-client';
// Access Token is optional, can also be set
const medium = new MediumClient();
async function main() {
const posts = await medium.getPosts("siamahnaf")
//This will give you following result in following format
MediumPostResponse {
id: string;
mediumUrl: string;
title: string;
pubDate: number;
author: {
name: string;
avatar: string;
}
thumbnail: string;
responseCount: number;
previewContent: string;
readingTime: number;
clapCount: number;
slug: string;
categories: string[];
}
//Get only medium post title using username
const postTitles = await medium.getPostTitles("siamahnaf")
//It will give you string of array with medium post title
}
- Author - Siam Ahnaf
- Website - https://www.siamahnaf.com/
- Twitter - https://twitter.com/siamahnaf198
- Github - https://github.com/siamahnaf