Foursquared
Simple client library for Foursquare API V2 with OAuth2 authentication
Installation
Add this line to your application's Gemfile:
gem 'foursquared'
And then execute:
$ bundle
Or install it yourself as:
$ gem install foursquared
Usage
OAuth2 Authentication
Foursquare OAuth2 authentication is integrated here. First you will have to initialize a Foursquared::OAuth::Client object with the client id, client secret and the callback url
oauth_client = Foursquared::OAuth::Client.new("your_client_id", "your_client_secret", "http://yourcallbackurl")
Obtain the authentication url
auth_url = oauth_client.authorize_url
Redirect the user to the above obtained auth_url. After user gives access to your app, they will be redirected to the callback url with a 'code' parameter. Extract this code and get the access token by invoking the following method
access_token = oauth_client.get_access_token("the_extracted_code")
Instantiate a client
After getting the access token instantiate the Foursquared client
client = Foursquared::Client.new(:access_token => "your_acess_token")
For userless access you can skip the above step and instantiate the client with your client id and client secret.
client = Foursquared::Client.new(:client_id => "your_client_id", :client_secret => "your_client_secret")
Features
- Every response item is an object. For example, every user will be a Foursquared::Response::User.
- Each object will have its own actions. For example you can friend, unfriend or deny the request from a user after retrieving the user object.
Examples
You can always navigate to the documentation for a list of all supported methods and available options.
Get user details
client.user(10230)
Get a venue details
venue = client.venue("4b2afcaaf964a5205bb324e3")
Checkin at a venue
You can use the above obtained Foursquared::Response::Venue object to checkin
venue.checkin(:broadcast => 'public', :ll => '36.142064,-86.816086', :shout => 'zomg coffee!1!')
You can also directly checkin at a venue providing its venue id.
client.add_checkin(:venueId => "4b2afcaaf964a5205bb324e3", :broadcast => 'public', :ll => '36.142064,-86.816086', :shout => 'zomg coffee!1!')
Todo
- Add more tests
- Improve documentation
- Integrate more endpoints
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
) - Create new Pull Request