Automate awarding Open Badges to recipients without the overhead of a server
Manage your badges (with Badgr ), but automate the award and retrieval of badges with badger-lite.
- Create an account on either Badgr or an equivalent server.
- Use your Badgr (or equivalent) username and password to generate OAuth tokens for use with your project:
curl -X POST 'https://api.badgr.io/o/token' -d "username=YOUREMAIL&password=YOURPASSWORD" > token.json
- Install the badgr-lite package:
pip install badgr-liteOr (using the newly recommended way from Python.org:
pipenv install badgr-lite
Now you can award badges through either the Command Line (CLI) or Library (SDK).
Sample Command Help:
$ badgr --help Usage: badgr [OPTIONS] COMMAND [ARGS]... Automate Badgr tasks without the overhead of badgr-server Options: --token-file PATH File holding token credentials --help Show this message and exit. Commands: award-badge Award badge with BADGE_ID to RECIPIENT. list-badges Pull and print a list of badges from server
--token-file
can be omitted if token.json
filename is in current directory.
$ badgr --token-file token.json list-badges dTjxL52HQBiSgIp5JuVq5w https://badgr.io/public/assertions/dTjxL52HQBiSgIp5JuVq5w Bay Area Python Interest Group TDD Participant 6YhFytMUQb2loOMEy63gQA https://badgr.io/public/assertions/6YhFytMUQb2loOMEy63gQA Bay Area Python Interest Group TDD Quiz Champion zzExTDvOTnOx_R3YhwPf3A https://badgr.io/public/assertions/zzExTDvOTnOx_R3YhwPf3A Test Driven Development Fundamentals Champion zNjcY70FSn603SO9vMGhBA https://badgr.io/public/assertions/zNjcY70FSn603SO9vMGhBA Install Python with Virtual Environments ZN0CIo4NR7-GgrliDJzoTw https://badgr.io/public/assertions/ZN0CIo4NR7-GgrliDJzoTw Fivvr badge$ badgr --token-file token.json award-badge --badge-id 2TfNNqMLT8CoAhfGKqSv6Q --recipient recipient@example.com IfK18iLWSNWhvnQxLPHSxA https://badgr.io/public/assertions/IfK18iLWSNWhvnQxLPHSxA <No name>
One could patch together curl commands to interact with the Badgr server (although badgr-lite does make it much faster to get started). However, the real benefit of Badgr-Lite is directly using its library in whatever tool that you are using to automate award assignments (e.g., Django server, Flask server, etc.).
>>> from badgr_lite.models import BadgrLite >>> badge_id = '2TfNNqMLT8CoAhfGKqSv6Q' >>> badge_data = { ... "recipient": { ... "identity": "recipient@example.com", ... }, ... } >>> badgr = BadgrLite(token_filename='./token.json') >>> badge = badgr.award_badge(badge_id, badge_data) >>> print(badge) q8nKaXMHTICZj7qhKEwutg https://badgr.io/public/assertions/q8nKaXMHTICZj7qhKEwutg <No name>Warning
Do not check the
token.json
file into your code repository. This is a secret file and should be handled like any other file that stores passwords or secrets.
Open Badges are images with credential data baked into them. They are liked a digitally signed certificate that is also an image that can be displayed on the web. They can be validated for authenticity and are a nice award to grant to people for jobs well done, passing quizzes and much more.
Mozilla recently partnered with Concentric Sky. They built Badgr which makes badge management so much easier (and less buggy).
At the time this project was created, however, there was no easy way to automate the award of badges (e.g., on your own website) without having to build a full and complicated badgr-server of your own.
This badgr-lite project solves that problem.
If you are new to Open Badges and want to see how to use them (and automate them with this project), go to this tutorial.
- Free software: MIT license
- Documentation: https://badgr-lite.readthedocs.io.