Why Does Facebook Camera Need to Know Your Location?
Instagram and Google+ don't need your location to access your photos, but Facebook's new Camera app does. What's going on?
If you turn off your iPhone's location services, Facebook Camera won't touch your camera roll — the photos you've already taken outside of the app. If you try to access your camera roll within Facebook Camera to post a photo, the app throws up a warning that you won't have camera roll access until you turn on Location Services in settings. And if you look in the app to see your roll, all you see is black, empty space. Sadface.
You hit this little wall even if you've previously authorized Facebook Camera to use your location. (The first thing many apps do is ask for permission to access your location, like above — even Apple's own Camera app. You can see which apps you've authorized to use your location in Settings.) Facebook says Camera needs location turned on because the "built-in camera automatically stores some information when a photo is taken. This includes the location your photo was taken." So, because your previously taken photos may have location data embedded in the file, if you turn off Location services, you can't access your camera roll from within it.
But, you might notice, that's not the case for other photo or social networking apps, like Instagram, Google+ and Facebook's own app. Even with Location services turned off, you can still access your camera roll from within these apps and post photos.
The reason, it turns out, is that while the behavior seems the same — you're picking out a photo from your camera roll and posting it — Facebook Camera is accessing your camera roll and files differently than Instagram, Google+ and the regular Facebook app. Not to get too nerdy, but Instagram and the like are using iOS's standard image picker service to access your photos, while Facebook Camera is accessing your camera roll and its files directly, I was told by someone who knows the Facebook Camera App pretty well. (FWIW, Dan H. on Twitter points out this developer document, specifically the "overview" and "special considerations" sections: "This method will fail with error ALAssetsLibraryAccessGloballyDeniedError if the user has not enabled Location Services (in Settings > General).")
Update: Josh Debner (a Windows Phone Photos product manager (!)) clarifies further via Twitter: "It's an iOS limitation in order to be able to multi-select. Otherwise you would have had to pick one photo at a time." That seems correct, based on my limited app testing.
So, Facebook Camera needs location services turned on to access your camera roll.
What's it doing with that location data, given the trouble the app goes through to get it? Nothing to worry about, really — one of the ways it's used is to quickly suggest a location for tagging your photo with a place. It's pretty standard, no different from when you geotag photos on Instagram or Google+ or any other service. Besides, it's Facebook. What's one more little piece of information?