Google API не работает на Heroku

309
15 июня 2018, 23:00

Нижеприведенный код работает только на локальном сервере, что нужно сделать что бы работало и в развернутом виде?

private  final String APPLICATION_NAME = "Qwerty";
private  final java.io.File DATA_STORE_DIR = new 
java.io.File("StoredCredential.txt");
private  FileDataStoreFactory DATA_STORE_FACTORY;
private  final JsonFactory JSON_FACTORY = 
JacksonFactory.getDefaultInstance();
private  HttpTransport HTTP_TRANSPORT;
private  String spreadsheetId;
private  final List<String> SCOPES = 
Arrays.asList(SheetsScopes.SPREADSHEETS, DriveScopes.DRIVE_METADATA, 
DriveScopes.DRIVE);
private  GoogleClientSecrets clientSecrets;
private  Credential credential;
private  ValueRange response;
private  AppendValuesResponse request;
private  Credential Autorize() throws IOException{
    try {
        HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
        DATA_STORE_FACTORY = new FileDataStoreFactory(DATA_STORE_DIR);
    } catch (Throwable t) {
        t.printStackTrace();
        System.exit(1);
    }
    InputStream in = GoogleSheet.class.getResourceAsStream("/client_secret.json");
    clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
    GoogleAuthorizationCodeFlow flow =
            new GoogleAuthorizationCodeFlow.Builder(
                    HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
                    .setDataStoreFactory(DATA_STORE_FACTORY)
                    .setAccessType("online")
                    .build();
    // Авторизация.
    Credential credential = new AuthorizationCodeInstalledApp(
            flow, new LocalServerReceiver()).authorize("");
    return credential;
}
private Sheets getSheetsService() throws IOException {
    credential = Autorize();
    return new Sheets.Builder(HTTP_TRANSPORT,JSON_FACTORY, credential)
            .setApplicationName(APPLICATION_NAME)
            .build();
}

Читал что секретный ключ json нужно добавить в переменные окружения Heroku, но как это правильно сделать, и как потом взаимодействовать с ним в коде так и не понял.

Логи Heroku:

INFO org.mortbay.log - Logging to Logger[org.mortbay.log] via 
org.mortbay.log.Slf4jLog
 DEBUG org.mortbay.log - Container Server@64f4e8c3 + 
SocketConnector@0.0.0.0:0 as connector
 DEBUG org.mortbay.log - Container Server@64f4e8c3 +       
LocalServerReceiver$CallbackHandler@749dc2e8 as handler
 INFO org.mortbay.log - jetty-6.1.26
 DEBUG org.mortbay.log - Container Server@64f4e8c3 + 
org.mortbay.thread.QueuedThreadPool@21640f3b as threadpool
DEBUG org.mortbay.log - started org.mortbay.thread.QueuedThreadPool@21640f3b
DEBUG org.mortbay.log - starting 
LocalServerReceiver$CallbackHandler@749dc2e8
DEBUG org.mortbay.log - started LocalServerReceiver$CallbackHandler@749dc2e8
DEBUG org.mortbay.log - starting Server@64f4e8c3
INFO org.mortbay.log - Started SocketConnector@localhost:32889
DEBUG org.mortbay.log - started SocketConnector@localhost:32889
DEBUG org.mortbay.log - started Server@64f4e8c3
at=error code=H12 desc="Request timeout" method=POST path="/google-success" 
host=qwerty.herokuapp.com request_id=130e5c05-bab1-4e0b-a286-c67e77cd8875 
fwd="178.151.29.139" dyno=web.1 connect=1ms service=30000ms status=503 
bytes=0 protocol=https
at=info method=GET path="/favicon.ico" host=englishtestfirst.herokuapp.com 
request_id=312144bd-d72f-4e71-bf1b-1a88d3e1a809 fwd="178.151.29.139" 
dyno=web.1 connect=0ms service=8ms status=400 bytes=1567 protocol=https
READ ALSO
Дженерики В чём отличие между &lt;T&gt; и &lt;?&gt;? [дубликат]

Дженерики В чём отличие между <T> и <?>? [дубликат]

На данный вопрос уже ответили:

244
Срабатывание кода по таймеру

Срабатывание кода по таймеру

подскажите пожалуйста, нужно сделать чтобы часть кода срабатывала в определенное время, например с 12 дня до 6 вечера, а с 6 вечера до 12 ночи...

259
Местоположение курсора в тексте

Местоположение курсора в тексте

В объекте класса JTextArea написан текстНужно создать функцию, которая будет добавлять определённый текст в то место, где расположен текстовый...

238