support multiple api keys, require app name, redirect uri (bug 862691)