Is there anyway to prevent apps, like FaceBook, from accessing the things it wants to access? I'd rather not let Facebook invade my privacy and take what information it wants.
You would need a custom ROM for that.
Currently this is going to be a feature in android M, but at this moment unless you are using a custom ROM, the only thing you can do is delete Facebook. If you're privacy minded, I would suggest not using Facebook at all. I understand why you are concerned. I don't want to mess up the answer, but they leave tracking cookies when you sign in that track your every move across the Internet. Tracking cookies are small files that are saved in the device viewing a webpage. Sites can look for these files on your device and use them to identify who someone is. In the case of Facebook, once you sign in there is a cookie left with your user ID. Have you ever seen those Facebook Like buttons all across the Internet? They have access to your cookies too, regardless of whether or not you click them. They them report to Facebook that you were on that particular site. Solution -> stop using Facebook entirely.
There is. Google has been working on this for quite some time now, but has not been releasing something like this officially yet.
Android 4.3 -
If you're running Android 4.3, it's a hidden built-in app (hidden, because it wasn't finished, but working).
Two options to open the app:
To create a shortcut, install something like Nova launcher and create one for "App Ops"
Install Permission Manager which enables a direct shortcut to the built in app.
Android 4.4+ - You have to
root your device for this to work (you don't need to flash a custom ROM for this)
After doing so, you can install any of the "App Ops" apps from the Play Store to grant/deny access to your media or phone identity.
Note: Some brands do not allow rooting your device, so please take notice of losing your warranty (though the process can be reversed)