Since I started writing a blog, I started publishing status on Twitter when something new comes out. I did it manually. By profession, I’m a programmer, so doing it started to torture me after a few times. I thought that maybe I could find a plugin on the Internet for this purpose, but unfortunately I was disappointed. (WordPress already has such a plugin ready. :() But I found that I could easily write a plugin and here is ready hexo-twitter-auto-publish plugin. Below are described step by step what you need to do in order to enjoy this solution.
- Sign in on https://developer.twitter.com/
- Apply for a developer account.
Their review of the application may take a few weeks. You will receive an email notification when the review is over.
- Open menu and go to Apps.
- Click Create an app button.
- Fill in only the required fields of the application.
- After creating the application, go into details by clicking the details button.
- Click on the Keys and tokens tab.
- Generate Consumer API keys and Access token & access token secret with access level Read and write.
The generated credentials will now be needed for the plugin configuration.
- Install plugin
npm i hexo-twitter-auto-publish
Setup twitter authentication credentials
There are two options to choose:
Adding variables to the shell startup file.
For the bash shell will be
~/.bashrcfile for zsh shell will be
export TWITTER_CONSUMER_KEY=Xegp8XDTMqVxcI2tId1juT70X export TWITTER_CONSUMER_SECRET=oaGaU06IGqaTfObZnYdrYmDvxiHcHck8TQ9Xk61Ze1ghjHQYkP export TWITTER_ACCESS_TOKEN_KEY=929842798974656517-VuQxIuoLhtoeqW71LofX6M5fIw8Pf3c export TWITTER_ACCESS_TOKEN_SECRET=R5RZtQj5tLWbSgFx39lq6cd2AcIQRjQk5kbepOobxCplA
Adding a new configuration in the
twitterAutoPublish: consumerKey: Xegp8XDTMqVxcI2tId1juT70X consumerSecret: fq4eY5NmK2X9ZxSDSUaFqMBPWWMUCCYu35PMvzoqB0YzqLOTEs accessTokenKey: 929842798974656517-VuQxIuoLhtoeqW71LofX6M5fIw8Pf3c accessTokenSecret: R5RZtQj5tLWbSgFx39lq6cd2AcIQRjQk5kbepOobxCplA
After creating the post or after generating the page, you should see the new
twitter-db.json file in the main directory. Any post status changes will now be saved in this file.
There are three fields in the database:
published- contains posts that are already on twitter and each post has a tweetId.
to-publish- contains all new posts that have not yet appeared on Twitter.
to-destroy- contains posts that for some reason have been moved to a working version, or we changed the
twitterAutoPublishin the page from true to false.
If you do not want a post to be sent to twitter, all you have to do is move it from
New statuses are sent to the twitter only after calling the command:
hexo deploy, or after calling a custom command:
That’s all I hope you liked this plugin and if you have any problems or suggestions what can be done better, write in issues on github.