If you are currently logged into FB than the FBSession returns "no" there is some issue going on with token state and you should call openActiveSessionWithAllowLoginUI
(the FB methods checking the states it returns).
if ([[FBSession activeSession]state])
Also, you might want to look into this for further detail on token management using Facebook SDK.
It's worth noting that the Social.framework for iOS is just as useful if content is to be shared only.