A library to access the Twitter API using Crystal
Add this to your application's shard.yml
:
dependencies:
twitter-crystal:
github: sferik/twitter-crystal
version: ~> 0.2.1
In your terminal run:
$ 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:
require "twitter-crystal"
After the installation, you can use twitter-crystal by creating a client object:
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.
Post/Delete a tweet
# post a tweet
client.update("Good morning")
# delete a tweet
client.destroy_status(897099923128172545)
Fetch a particular Tweet by ID
client.status(950491199454044162)
Follow a user(by screen name or user_id)
client.follow("kenta_s_dev")
client.follow(776284343173906432)
Unfollow a user(by screen name or user_id)
client.unfollow("kenta_s_dev")
client.unfollow(776284343173906432)
Search users
client.user_search("Crystal lang") # returns maximum of 20 users
Fetch users by user_id/screen_name
client.users("kenta_s_dev")
# fetch multiple users(maximum is 100)
client.users("sferik", "yukihiro_matz", "dhh")
Fetch followers' IDs
client.follower_ids
Fetch followees' IDs
# 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
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.
- Fork it ( https://github.com/sferik/twitter-crystal/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
The goal of the project is to implement all methods to call Twitter REST API. There are a lot of things need to be done. Pull Requests are welcome :)