Search code examples
iosauthenticationinstagramfoursquare

New venue in Foursquare from within iOS?


(EDITED for clarification)

In a nutshell we're trying to allow users to create Foursquare venues in our app but we're having problems.

Detailed problem description:

  • We're developing an iOS app where our users can create events.
  • Users register and login with Facebook.
  • When a user wants to select location for their event they do a text search using Foursquare's API. (Just like when you add a location to your Instagram photo for example if you're familiar with this).
  • If the venue exists the user will see it in the list and select it and all is fine.
  • If however the venue doesn't already exist in Foursquare we've found no way to add it. Compare to Instagram where you get the option of adding the location directly in-app through Foursquare's API if the search turns up empty.

Thanks user rckoenes for the API link. We're interpreting the API as it is OK to list venues with "userless access" but in order to make a POST the API "Requires Acting User".
Somehow Instagram seems to manage to allow this without forcing the user to authenticate to Foursquare but we don't see how and we want to avoid having to have this authentication in the app settings (asking them to do this with Facebook is asking enough).

Foursquare API link: https://developer.foursquare.com/overview/auth

I hope this clears things up.

_Original post:
If our user can't find the right venue in our app (location search powered by foursquare) how can they create it? This is possible within Instagram but we haven't found how to replicate it. Is it possible? We're developing for iOS.


Solution

  • Great question. To answer "how to add venues?", rckoenes was indeed correct when he suggested the venues/add endpoint, but you're right to note that this isn't possible unless there's an actively logged in user.

    Just to clarify though, Instagram does not add venues to Foursquare when they allow their users to "Create a custom location." When an Instagram user does this, a "text tag" is associated with their photo and this never gets added to Foursquare, nor is it even searchable on Instagram again (the user would have to re-create it every time they want to use this location). Instagram's UI subtly differentiates this by coloring Foursquare venues as blue and allowing users to see more details on the venue while graying out non-Foursquare venues. The reason that these text tags aren't able to be searched again is that doing so would effectively create your own independent location database, which is a violation of our usage policies.

    You can consider Instagram's approach if it's appropriate for your situation, but of course the best solution is to allow your users to authenticate through Foursquare, saving their access tokens, and make venue/add requests on behalf of users themselves. This has recently gotten much easier since the release of Foursquare native auth for iOS.