Lambda Twitter Blog Poster
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.
Developing
Requirements
Getting started
- Create a
env.yml
file 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>*
Deploy
- To deploy, use
sls deploy -v
ORmake deploy
. - Once deployed, copy the API Gateway URL printed on the console.
Create a webhook
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 > Integrations
to create a new webhook. - Paste the URL from the last section into the
URL
field and the secret from theserverless.env.yml
file in to theSecret Token
field. - Check
Push Events
underTrigger
. - Click on
Add webhook
to save.
Triggering the function
- 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!
Contributing
Read the CONTRIBUTING guide for information.
License
Licensed under MIT. See LICENSE for more information.
Issues
Report a bug in issues.
Made with love in Kuala Lumpur, Malaysia by Riyadh Al Nur