我有一个基于java的网络应用程序,可以下载给定视频的YouTube评论。它在本地运行良好,但当我将其部署到亚马逊clound时,由于回调网址问题,在验证过程中给了我所有的错误。
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, scopes).setCredentialDataStore(datastore)
.build();
// Build the local server and bind it to port xxxxx
LocalServerReceiver localReceiver = new LocalServerReceiver.Builder().setPort( 15555 ).build();
// Authorize.
Credential credential = new AuthorizationCodeInstalledApp(flow, localReceiver).authorize("user");
);
return credential;
上面的代码片段来自youtube dev网站。
我的问题是,因为localReciver
从youtube获取访问令牌,在端口15555上运行,所以{you}无法从youtube获得响应,因为只有端口80可以从外部访问我的网站是在亚马逊云上吗?正确吗?
所以换句话说,如果我将我的redirect_uri作为localReceiver
,那么它就不会起作用,因为它位于端口15555上。我正试图将其包裹起来找到一个解决方案。你怎么做到这一点?
答案 0 :(得分:0)
我找到了一种解决方法: 我在本地进行了身份验证,生成了令牌并将文件复制到服务器,并且可以正常工作,尽管不确定刷新过程是否可以正常工作。
答案 1 :(得分:-1)
这与此问题类似:Deploying a node.js TCP server on heroku
基本上我认为它不会起作用。我试过这样做:
LocalServerReceiver localReceiver = new LocalServerReceiver.Builder().setHost("myappname.herokuapp.com").setPort(80).build();
但最终得到了一个java.net.BindException错误。