Snapcat

A cat-tastic Ruby wrapper for the Snapchat private API.
Meow. This gem is designed to give you a friendly Ruby-like interface for
interacting with the Snapchat API.
Installation
Add this line to your application's Gemfile
:
gem 'snapcat', '~> 0.5'
And then execute:
$ bundle
Alternatively, install it via command line:
$ gem install snapcat
Usage
User Auth
snapcat = Snapcat::Client.new('your-username')
snapcat.login('topsecretpassword')
snapcat = Snapcat::Client.new('your-new-username')
snapcat.register('topsecretpassword', '1990-01-20', 'test@example.com')
snapcat.logout
User Actions
snapcat.block('username-to-block')
snapcat.clear_feed
snapcat.fetch_updates
snapcat.unblock('username-to-unlock')
snapcat.update_email('newemail@example.com')
snapcat.update_privacy(Snapcat::User::Privacy::EVERYONE)
response = snapcat.block('username-to-block')
response.code
response.http_success
response.data
User Data
user = snapcat.user
user.data
user.snaps_received
user.snaps_sent
user.friends
Friends
snapcat.add_friend('mybestbuddy')
friend = user.friends.first
snapcat.set_display_name(friend.username, 'Nik Ro')
snapcat.delete_friend(friend.username)
friend.can_see_custom_stories
friend.display_name
friend.username
friend.type
friend.type.confirmed?
friend.type.unconfirmed?
friend.type.blocked?
friend.type.deleted?
Sending Snaps
snapcat.send_media(data, 'catsaregreat')
snapcat.send_media(data, %w(catsaregreat ronnie99), view_duration: 4)
Posting a Story
snapcat.send_story(data, caption_text: "oh hai haz cheezburger", time: 10)
Getting Stories
snapcat.get_stories
Received Snaps
snap = user.snaps_received.first
media_response = snapcat.media_for(snap.id)
media = media_response.data[:media]
snapcat.view(snap.id)
snapcat.screenshot(snap.id)
media.image?
media.video?
media.file_extension
media.type_code
media.to_s
Snaps General
snap.broadcast
snap.broadcast_action_text
snap.broadcast_hide_timer
snap.broadcast_url
snap.screenshot_count
snap.media_id
snap.id
snap.media_type
snap.recipient
snap.sender
snap.status
snap.sent
snap.opened
Advanced User Auth
The standard login
method will log out all other sessions. If you want to use
Snapcat in multiple concurrent processes, you need to share this token across
processes and set it manually.
snapcat.auth_token
snapcat.auth_token = '1c7e8f83-1379-4694-8fa9-4cab6b73f0d4'
Contributing
- Fork it
- 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
) - Add tests and make sure they pass
- Create new Pull Request
Credits
Copyright © 2013 Neal Kemp, Daniel Archer
Released under the MIT License, which can be found in the repository in LICENSE.txt
.