Code Monkey home page Code Monkey logo

angellist's Introduction

The start of a VERY simple Python library for working with the AngelList api ( http://angel.co/api )

DISCLAIMER: 

Note: This code is a quick hack for a personal project I'm playing around with. There are obvious holes (for example the delete stuff isn't working yet) and there are most certainly much cleaner/better/faster ways to interact with the AngelList api, but this version basically gave me quick access to the functionality that I needed at the time.

If you have questions, comments, or updates you would like me to include please feel free to email me any time at [email protected] or ping me via Twitter at http://twitter.com/falicon

OAUTH:

The AngelList api requires authentication via OAuth2 ( http://angel.co/api/oauth/faq ). This process is started by sending users to a specific angel.co url to authorize your app. You generate that url like this:

auth_url = "https://angel.co/api/oauth/authorize?client_id=%s&response_type=code" % 'YOUR_CLIENT_ID_ASSIGNED_BY_ANGEL_LIST'

Then you just redirect your user to the generated URL. Once a user validates your app on AngelList, AngelList will send them back to the endpoint your specified when you set up your app along with a URL param of code. It will look something like this:

http://localhost?code=08a6502cb3199adf9f7d50c85254a0f1

The next step is to use this returned code, along with your client_id, and client_secret to obtain a valid access_token. You do that like this:

import angellist
al = angellist.AngelList()
al.client_id = 'YOUR_CLIENT_ID_ASSIGNED_BY_ANGEL_LIST'
al.client_secret = 'YOUR_CLIENT_SECRET_ASSIGNED_BY_ANGEL_LIST'
access_token = al.getAccessToken(code='THE_CODE_YOU_JUST_GOT_IN_THE_AUTH_RESPONSE_URL')

and if all goes well, you should now have a valid access_token that you can store along with this users account details and make valid AngelList api calls for.

ACTUALLY ACCESSING THE API -- THE BASICS:

If you have a valid access token, you should be able to something like the following:

import angellist
al = angellist.AngelList()
al.access_token = 'YOUR_VALID_ACCESS_TOKEN_FROM_OAUTH_PROCESS'
my_angel_list_profile = al.getMe()

-- IMPORTANT NOTE -- All requests expect a valid access_token to be set (see the OAuth section for details on obtaining a valid access_token).

AVAILABLE METHODS:

- getFeed()

- deleteFollows(follow_type='', follow_id='') - currently known issues
- addFollows(follow_type='', follow_id='')
- getFollowers(user_id='')
- getFollowersIds(user_id='')
- getFollowing(user_id='')
- getFollowingIds(user_id='')
- getStartupsFollowers(startup_id='')

- getReviews(user_id='')

- getStartups(startup_id='')
- getStartupsSearch(slug='', domain='')

- getTagsStartups(tag_id='')

- getStartupRoles(user_id='', startup_id='')

- getStatusUpdates(user_id='', startup_id='')
- postStatusUpdates(startup_id='', message='')
- deleteStatusUpdates(status_id='') - currently known issues

- getTags(tag_id='')
- getTagsChildren(tag_id='')
- getTagsParents(tag_id='')
- getTagsStartups(tag_id='')

- getUsers(user_id='')
- getUsersSearch(slug = '', email = '')
- getMe()


KNOWN ISSUES:

- DELETE requests (deleteFollows and deleteStatusUpdates) are not currently working (I have not yet been able to debug just how AngelList is expecting DELETE requests to be submitted).

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.