When you request publish permissions (via the Session.NewPermissionsRequest), you can set the default audience to whatever you'd like (see here).
Beware, however, that the user can always limit the default audience later to whatever they choose, and your app cannot post above that audience. Also beware that most users do not want to post publicly, so defaulting to public can cause some users to deny your publish permission request.