When your Clash of Clans say your Facebook is disconnected, it's usually because your authentication/access token (the one given to Supercell and your client when you were prompted for authentication) has expired. It expires when one of the following happens:
- Your Facebook password was changed.
- You manually chose to deauthorize the app (in your Apps page), simply click the cog wheel and refer to the pop-up box.
- Expires after some time.
You can read up more about Authentication tokens on the Facebook Developers' page.
As for linking with Facebook - It is not possible, as Facebook does not allow for apps to store identification data (not access tokens, client IDs or changable account identifiers), but actual static identifiers (like a SteamID).
So, there is no way to restore without using Games Center (for iOS) or logging with a Google Play (Android) account, as these services do allow the game (or for Clash of Clans' case; their servers) to store a static identifier ID.
Lastly, as for the game saying you're constantly getting disconnected, are you:
- Constantly changing your password/deauthorizing apps?
- Not using the Facebook app or Safari (for iOS), or using the in-built browser(for Android) to do the authentication?
If so, you may want to consider using Safari (for iOS), or for Android devices, a modern browser such as Google Chrome or Mozilla Firefox.
Alternatively, it's the safest to use the Facebook app for both device types as Facebook stores the data on the app too, along with logging-in not being a hassle (in case of cross-browser/app errors).