Automagically post to Twitter timeline about new blog post using Go on AWS Lambda.
TL;DR Events are generated using webhooks - Gitlab in this case because that's where I store my site. On specific commit events (the commits contain a [NEW POST] block), a Twitter status is pushed to my timeline.
- Create a
env.ymlfile in the root of the project. - Declare the following variables and values in the file -
secrets:
HOOK_SECRET: *<gitlab-token-header-secret>*
API_KEY: *<twitter-consumer-api-key>*
API_SECRET: *<twitter-consumer-secret-key>*
ACCESS_TOKEN: *<twitter-app-access-token>*
ACCESS_SECRET: *<twitter-app-access-secret>*
BASE_URL: *<url-of-blog>*- To deploy, use
sls deploy -vORmake deploy. - Once deployed, copy the API Gateway URL printed on the console.
Only GitLab is supported at the moment
- Navigate to the repo for which a webhook will be triggered.
- From the panel on the left, go to
Settings > Integrationsto create a new webhook. - Paste the URL from the last section into the
URLfield and the secret from theserverless.env.ymlfile in to theSecret Tokenfield. - Check
Push EventsunderTrigger. - Click on
Add webhookto save.
- To trigger a new post to Twitter on new post publishes, commit your new posts in the form -
[NEW POST]
The title of the post
permalink-of-the-post
- Profit!
Read the CONTRIBUTING guide for information.
Licensed under MIT. See LICENSE for more information.
Report a bug in issues.
Made with love in Kuala Lumpur, Malaysia by Riyadh Al Nur