medium-nodejs-client
v1.1.1
Published
Nodejs(TypeScript) client for Medium API (Official Medium API)
Downloads
84
Maintainers
Readme
Medium Nodejs Client
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.
Install
npm i medium-nodejs-client
Implementation
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.
}
Get post list using username
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
}
Stay in touch
- Author - Siam Ahnaf
- Website - https://www.siamahnaf.com/
- Twitter - https://twitter.com/siamahnaf198
- Github - https://github.com/siamahnaf