Giter Club home page Giter Club logo

snapchat's Introduction

Snapchat

STATUS

This library is not being actively maintained and AFAIK there is no easy way to get it working due to Snapchat updates and the Casper service no longer being public. If anyone is interested in adopting this project or knows a workaround to get this library working again, please feel free to reach out.

Nodejs client for the unofficial Snapchat API

This project is a node.js port of the excellent Objective-C SnapchatKit library by Tanner Bennett (ThePantsThief).

It provides an easy-to-use client interface to Snapchat's unofficial API, allowing Javascript developers to script Snapchat!

Install

npm install snapchat

Usage

The main entrypoint is the Snapchat class. See the auto-generated documentation for a detailed API reference.

Snapchat defaults to using required signin credentials stored in environment variables:

  • SNAPCHAT_USERNAME The Snapchat username to sign in with.
  • SNAPCHAT_PASSWORD The password to the Snapchat account to sign in with.
  • SNAPCHAT_GMAIL_EMAIL A valid GMail address.
  • SNAPCHAT_GMAIL_PASSWORD The password for the GMail address.
var Snapchat = require('snapchat')

var client = new Snapchat()
// note the signIn will default to credentials stored in environment variables
client.signIn(function (err, session) {
  if (!err) {
    console.log('signed in', client.username)
  }
})

Or with explicit credentials:

var Snapchat = require('snapchat')

var client = new Snapchat()
client.signIn('myusername', 'mypassword', '[email protected]', 'mygmailpassword', function (err, session) {
  if (!err) {
    console.log('signed in', client.username)
  }
})

NOTE Only Snapchat accounts created via an Android client should be used with this library. iOS accounts are handled separately by Snapchat, and your account will most likely be flagged / disabled as suspicious if you try to use a Snapchat account created on iOS.

NOTE Any valid gmail address and password may be used; it does not have to be the one the Snapchat user was created with.

Contribute

js-standard-style

See CONTRIBUTING.

Debugging

You can enable debug logs by setting the DEBUG environment variable:

DEBUG=snapchat,snapchat:*; # debug all snapchat submodules

Third party resources

Credits

  • Tanner Bennett (ThePantsThief), the auther of the Objective-C library SnapchatKit, which this version is heavily based on.
  • Everyone who built and maintains the PHP implementation.
  • See nykac's old node version.
  • Liam Cottle for his tenacious work on Casper and the API service he provides.

Author

Travis FischerGitHub/fisch0920Twitter/@fisch0920

Todo

  • MORE TESTS
  • rate limiting (currently test suite is failing with 401 errors because of rate limiting issues)
  • check logged status in Request.start response handler
  • handle request encoding properly for blobs and non-text requests
  • sendEvents inconsistent between Array[event] and event

License

MIT. Copyright (c) Travis Fischer.

Legal

I believe it's 100% legal to use a "private" REST API and that there are no laws explicitly prohibiting the use of "private" REST APIs. However, this does not mean that the makers of these private APIs can't try to sue you under something overly-broad, such as the CFAA. I don't think Snapchat will, personally; in my experience they've only gone after developers for copyright disputes.

Disclaimer: The name "Snapchat" is a copyright of Snapchat™, Inc. This project is in no way affiliated with, sponsored, or endorsed by Snapchat™, Inc. I, the project owner and creator, am not responsible for any legalities that may arise in the use of this project. Use at your own risk.

snapchat's People

Contributors

transitive-bullshit avatar autarc avatar marcbachmann avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.