I'm not sure that this class is useful.  Non-privileged clients won't be able to access the clientId from libsailfishkeyprovider anyway, so we should instead ensure that the clientId property is settable.  And an entire abstract class just to provide a single common property is overkill - we should just copy-paste the property definition to the required facebook model types.