0
votes

I am implement OAuth 2 for youTube api..

public class LocalServerReceiverRetriever {

    private static final Logger logger = LoggerFactory
            .getLogger(FileUploadController.class);

    private static LocalServerReceiver localServerReceiver = null;

    public static LocalServerReceiver getLocalServerReceiver(){
        if(localServerReceiver == null){
            localServerReceiver = new LocalServerReceiver.Builder().setPort(8081).build();
        }else{
            try {
                localServerReceiver.stop();
            } catch (IOException e) {
                logger.error(e.getMessage() + e.getCause());
            }
            localServerReceiver = new LocalServerReceiver.Builder().setPort(8081).build();
        }
        return localServerReceiver ;
    }
}

public static Credential authorize(List scopes, String credentialDatastore) throws IOException {

    // Load client secrets.
   // more code....

    // Build the local server and bind it to port 8081
    LocalServerReceiver localReceiver = LocalServerReceiverRetriever.getLocalServerReceiver();

    logger.debug("localReceiver set up to 8081");

    // Authorize.
    return new AuthorizationCodeInstalledApp(flow, localReceiver).authorize("user");

}

It is working in local. Logically I change the callback URL to http://localhost:8081/CallBack.. Working fine in local but when I deploy to AWS server with public IP, it does not work..

Showing address already in use for 8081 exception and even not redirect to google auth page.

1

1 Answers

0
votes

That simply means port 8081 has been occupied by some other service on AWS . Either stop that service , or choose a new port other than 8081 for your application. It will work.