Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sferik/twitter-crystal
A library to access the Twitter API using Crystal
https://github.com/sferik/twitter-crystal
Last synced: about 1 month ago
JSON representation
A library to access the Twitter API using Crystal
- Host: GitHub
- URL: https://github.com/sferik/twitter-crystal
- Owner: sferik
- License: other
- Created: 2014-11-30T15:33:12.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2020-09-03T01:14:04.000Z (over 4 years ago)
- Last Synced: 2024-10-27T07:32:51.629Z (about 2 months ago)
- Language: Crystal
- Size: 103 KB
- Stars: 82
- Watchers: 6
- Forks: 16
- Open Issues: 3
-
Metadata Files:
- Readme: README.markdown
- License: LICENSE
Awesome Lists containing this project
- awesome-crystal - twitter-crystal - A library to access the Twitter API (Third-party APIs)
- awesome-crystal - twitter-crystal - A library to access the Twitter API (Third-party APIs)
- awesome-crystal - twitter-crystal - A library to access the Twitter API (Third-party APIs)
README
A library to access the Twitter API using [Crystal][]
-----------------------------------------------------[crystal]: http://crystal-lang.org/
[![Build Status](https://travis-ci.org/sferik/twitter-crystal.svg?branch=master)][travis]
[travis]: https://travis-ci.org/sferik/twitter-crystal
## Installation
Add this to your application's `shard.yml`:
```yaml
dependencies:
twitter-crystal:
github: sferik/twitter-crystal
version: ~> 0.2.1
```In your terminal run:
```bash
$ crystal deps
```This will get the latest code from this github repository and copy it to a `lib` directory. All that's left is to require it:
```crystal
require "twitter-crystal"
```## Usage
After the installation, you can use twitter-crystal by creating a client object:
```crystal
require "twitter-crystal"consumer_key = "your consumer key"
consumer_secret = "your consumer secret"
access_token = "your access token"
access_token_secret = "your access token secret "client = Twitter::REST::Client.new(consumer_key, consumer_secret, access_token, access_token_secret)
```All the necessary keys can be generated by [creating a Twitter application](https://dev.twitter.com/oauth/overview/application-owner-access-tokens).
**Post/Delete a tweet**
```crystal
# post a tweet
client.update("Good morning")# delete a tweet
client.destroy_status(897099923128172545)
```**Fetch a particular Tweet by ID**
```crystal
client.status(950491199454044162)
```**Follow a user(by screen name or user_id)**
```crystal
client.follow("kenta_s_dev")
client.follow(776284343173906432)
```**Unfollow a user(by screen name or user_id)**
```crystal
client.unfollow("kenta_s_dev")
client.unfollow(776284343173906432)
```**Search users**
```crystal
client.user_search("Crystal lang") # returns maximum of 20 users
```**Fetch users by user_id/screen_name**
```crystal
client.users("kenta_s_dev")# fetch multiple users(maximum is 100)
client.users("sferik", "yukihiro_matz", "dhh")
```**Fetch followers' IDs**
```crystal
client.follower_ids
```**Fetch followees' IDs**
```crystal
# In Twitter API documents, followees are called 'friends'.
client.friend_ids
```**You can also call Twitter's API directly using the `get` or `post` method**
```crystal
client.get("/1.1/users/show.json", { "screen_name" => "sferik" })
client.post("/1.1/statuses/update.json", { "status" => "The world is your oyster." })
```If you want to call the API directly, refer to the [API reference](https://dev.twitter.com/rest/reference).
## Contributing
1. Fork it ( https://github.com/sferik/twitter-crystal/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request### Pull Requests are very welcome!
The goal of the project is to implement all methods to call [Twitter REST API](https://dev.twitter.com/rest/public). There are a lot of things need to be done. Pull Requests are welcome :)
## Contributors
- [sferik](https://github.com/sferik) Erik Michaels-Ober - creator
- [kenta-s](https://github.com/kenta-s) Kenta Shirai - maintainer