Applications such as Foursquare and Groupon generally have a clause in their API Terms Of Reference which states that their data cannot be combined with that of others. I have been exploring Foursquare's API for some time now and am wondering how come sites like GTrot.com are able to display their results with records from both these websites (Foursquare and Groupon) and other similar sites?
Is it that Foursquare and Groupon are not really competitors and hence their data can be combined and displayed, whereas Foursquare and Google Places are competitors and so their data cannot be combined?
=====
For reference, here is a section from Foursquare's API Policy :-
Venues Database Usage
We welcome you to use foursquare as your location database. You can associate additional content with our venue data in your system, but you may not combine our database with another database or export it on your own. Examples -
* DO associate Wikipedia articles to foursquare venues and show them to users
* DON'T perform a search across both foursquare and Google Places, then return a combination of their results/data.
Applications can map between their existing database of locations and foursquare's in order to show foursquare information or offer foursquare-specific features (like checking in). This is fine under the foursquare ToS so long as the data is properly attributed to foursquare and the underlying database does not "learn" about new locations through the foursquare integration.
So for example you build a website that used Wikipedia locations but showed foursquare tips (properly attributed) about those locations. But you couldn't combine Wikipedia's set of locations with foursquare's set of locations to create a unified dataset.
Related
What is the right place to store things like product price, title, description when using Stripe, when many products are present?
The app I'm building will potentially have hundreds of products and I would like to easily be able to list them, paginate, search. Should this product data be duplicated both in my database and in Stripe?
The products in question are going to be courses, for an e-learning platform. They need to be integrated with the rest of my schema, so they do need to exist in my database too, but I would like to avoid duplication of certain fields, if possible. I wonder if there's a recommended approach for this.
If it were me I would cache this information in my database and sync it in Stripe as needed.
You want the product and pricing information in Stripe since it's needed for their Product and Price APIs. It's used to display detailed information in email receipts or invoices, on hosted pages like Checkout and in various reconciliation options.
You also want the information in your database since you don't want to hit Stripe's API every time you need to retrieve a product's name or pricing details though especially if you have many products.
1) I notice that Foursquare does not show all places, but other engines show places that are not yet in Foursquare, but I would like to use Foursquare API, so is there a problem showing a merged view of places from more than one engine providing attributions to both?
2) Even if I don't use both engines, but only foursquare and I create my own places (no other engine but my own), can I show a merged view of both of them?
If the above is not possible, what are my options of a location database that allows the above?
Take a look at the "Other Data" section of Foursquare's Venues Database Usage Rules. Also from the FAQ: "Every venue should come from Foursquare. You are not allowed to maintain your own repository of venues alongside those from Foursquare—you should be using us as your sole location database. If a venue is not on Foursquare, you should add it."
My primary question is: Can connected apps add relevant information to venue pages?
I am a coder and avid Foursquare user. The basic information about venues is cool (location, photos, tips, etc.), but while I have my meal (in the case of a restaurant) I'd like to have more to read about the venue, such as the back-story, i.e., what's the history of the place, when was it founded, by who, and other interesting facts about the venue.
I thought connected apps would be the answer and that perhaps I could write a simple wiki to integrate with the venue page for users to provide their knowledge about the venue. But it seems from what I've read that's not the the intent of a connected app or the API. Am I correct is this assumption? And if so, can this idea be dropped into the Foursquare suggestion box? I think it would make a great value added feature - especially for us nerds who like to read.
This is a great use case for connected apps. Connected apps can reply to check-ins with up to 200 characters of text, and a link to more content. This can be used to provide additional information about the venue. Take a look at https://foursquare.com/apps/ to see examples of connected apps, and the kinds of responses they give to check-ins.
I was reading the API policy of foursquare Venue Platform.
"You may not use the API to to add new places to your database or alter location details for places in your database."
It raised two questions to me:
1. How would they know, if one added new places, etc. to his/ her own database?
I hear that foursquare (used to) use the google maps api, to retrieve information for locations, so does that mean it is viable to use Google Map's data to create one's own basic database?
Any help is appreciated.
Basically they are telling you - you can use our API and database to create great apps, but do not steal our know-how(the database copy). They won't probably find out if you copy few of them, but say - you make a startup based on their database which you fully copied, then they can sue you and get you in trouble....
For Google usage, refer to Google Policy here.
I am trying to develop an application where users will post content. It is a user-generated application, so every post will have a location attached to it, so that it can be filtered later for other users in that area or city.
For example: say users can list books on my website to sell. Now while listing I want to provide them a text box where they can enter a location. Now the entered location should be valid, so how do I verify that?
Also after posting the book, someone else searches for a book in his location then he/she should not only get results for his location but other nearby locations too.
These are few of my questions. If someone can answer them and guide me, I'd really appreciate it. Thanks.
To verify people's location, you'll want to use the HTML5 geolocation capabilities. Take a look here for a demo: http://merged.ca/iphone/html5-geolocation
Searching nearby is a bit trickier, but there are a few options. You could use a geocoding service (Google and Bing for example both offer geocoding REST APIs) to determine if people are in the same city, zip code, etc. Perhaps a better solution is to use database queries to search for nearby posts. Many databases now offer built-in geospatial data types to support exactly this kind of scenario. MySQL for example: http://dev.mysql.com/doc/refman/5.0/en/mysql-spatial-datatypes.html