A library to access the Twitter API using Crystal
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
spec
src
.gitignore
.travis.yml
LICENSE
README.markdown
shard.yml

README.markdown

A library to access the Twitter API using Crystal

Build Status

Installation

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"

Usage

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.

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. There are a lot of things need to be done. Pull Requests are welcome :)

Contributors

  • sferik Erik Michaels-Ober - creator
  • kenta-s Kenta Shirai - maintainer