我找到了解决方案。注意:这是 java 代码,但我敢打赌它在所有其他语言中的工作方式都是一样的。问题是我的服务器受到很大限制,因此我无法在那里启动任何一个浏览器(因为那只是一个没有 UI 的服务器),要么启动 localhost 服务器以获取代码。您只需要自定义VerificationCodeReceiver
:
VerificationCodeReceiver inbrowserListener = new VerificationCodeReceiver() {
@Override
public String getRedirectUri() throws IOException {
return "urn:ietf:wg:oauth:2.0:oob";
}
@Override
public String waitForCode() throws IOException {
// Reading console line
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
return reader.readLine();
}
@Override
public void stop() throws IOException {
}
};
然后只需在通常的流程中使用它:
private static Credential getCredentials() {
.....
return new AuthorizationCodeInstalledApp(flow, inbrowserListener).authorize("user");
}