{"id":20050330,"url":"https://github.com/watzon/tweeter","last_synced_at":"2026-05-31T20:31:54.484Z","repository":{"id":91428303,"uuid":"123357587","full_name":"watzon/tweeter","owner":"watzon","description":"Twitter API wrapper for Crystal","archived":false,"fork":false,"pushed_at":"2018-03-04T23:35:36.000Z","size":489,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-02T08:30:17.870Z","etag":null,"topics":["api-client","api-wrapper","crystal","crystal-language","oauth","tweeter","twitter","twitter-api"],"latest_commit_sha":null,"homepage":null,"language":"Crystal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/watzon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-03-01T00:03:18.000Z","updated_at":"2019-05-27T02:00:28.000Z","dependencies_parsed_at":"2024-02-06T16:14:03.634Z","dependency_job_id":null,"html_url":"https://github.com/watzon/tweeter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/watzon/tweeter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watzon%2Ftweeter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watzon%2Ftweeter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watzon%2Ftweeter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watzon%2Ftweeter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/watzon","download_url":"https://codeload.github.com/watzon/tweeter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watzon%2Ftweeter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33748607,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-client","api-wrapper","crystal","crystal-language","oauth","tweeter","twitter","twitter-api"],"created_at":"2024-11-13T11:56:23.994Z","updated_at":"2026-05-31T20:31:54.451Z","avatar_url":"https://github.com/watzon.png","language":"Crystal","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tweeter\n\n[![Travis](https://img.shields.io/travis/watzon/tweeter.svg)](https://travis.org/watzon/tweeter) ![Dependencies](https://shards.rocks/badge/github/watzon/tweeter/status.svg) ![Github search hit counter](https://img.shields.io/github/search/watzon/tweeter/goto.svg) ![license](https://img.shields.io/github/license/watzon/tweeter.svg)\n\nTweeter is a Crystal interface to the Twitter API and is heavily based off the wonderfully thurough [Twitter Ruby Gem](https://github.com/sferik/twitter) by [sferik](https://github.com/sferik).\n\n## Installation\n\nAdd this to your application's `shard.yml`:\n\n```yaml\ndependencies:\n  tweeter:\n    github: watzon/tweeter\n```\n\n## Usage\n\nMake sure to include the tweeter gem at the root of your application or wherever you need to access it's functionality.\n\n```crystal\nrequire \"tweeter\"\n```\n\n### Configuration\n\nConfiguration for Tweeter is very similar to that of the Twitter Ruby Gem. The Twitter API requires authentication via OAuth, so you'll first need to [register your application with Twitter](https://apps.twitter.com/) to receive a consumer_key and consumer_secret. You can also authenticate your current user to get an access_token and access_token_secret. __Make sure you set the correct access level.__\n\nYou can pass the values you receive as a block to `Tweeter::REST::Client.new`.\n\n```crystal\nclient = Tweeter::REST::Client.new do |config|\n  config.consumer_key        = \"YOUR_CONSUMER_KEY\"\n  config.consumer_secret     = \"YOUR_CONSUMER_SECRET\"\n  config.access_token        = \"YOUR_ACCESS_TOKEN\"\n  config.access_token_secret = \"YOUR_ACCESS_SECRET\"\nend\n```\n\n### Usage Examples\n\nThe project is still in development and until it has a stable API I will refrain from listing usage examples here. Feel free to look in the `specs` directory to see how things are done in the tests that have been written so far.\n\n## Development\n\n### v1.0.0 Progress\n\n- [x] Authentication\n- [x] Cursor Support\n- [ ] Streaming Client\n- [ ] REST Client\n  - [x] Direct Messages (__sending not working yet__)\n  - [x] Favorites\n  - [x] Friends and Followers\n  - [x] Help\n  - [ ] Lists\n  - [x] OAuth\n  - [ ] Places and Geo\n  - [ ] Saved Searches\n  - [x] Search\n  - [ ] Spam Reporting\n  - [ ] Suggested Users\n  - [x] Timelines\n  - [x] Trends\n  - [x] Tweets\n  - [x] Undocumented Endpoints\n  - [x] Users\n- [ ] Complete Specs\n\n## Contributing\n\nPlease make sure you have the latest version of Crystal installed before doing any development. As of now this shard is updated to work with `Crystal 0.24.1`. Please also run `crystal tool format` \u0026 `crystal spec` before commiting.\n\n1. Fork it ( https://github.com/watzon/tweeter/fork )\n2. Create your feature branch (git checkout -b my-new-feature)\n3. Commit your changes (git commit -am 'Add some feature')\n4. Push to the branch (git push origin my-new-feature)\n5. Create a new Pull Request\n\n## Contributors\n\n- [watzon](https://github.com/watzon) Chris Watson - creator, maintainer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwatzon%2Ftweeter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwatzon%2Ftweeter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwatzon%2Ftweeter/lists"}