GoogleOAuth重定向URL,LocalServerReceiver端口号

时间:2016-07-09 14:21:27

标签: java youtube-api google-oauth youtube-data-api google-oauth2

我有一个基于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上。我正试图将其包裹起来找到一个解决方案。你怎么做到这一点?

2 个答案:

答案 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错误。