小编use*_*585的帖子

Google Sheets java sdk oAuth在几小时后未经授权(春季启动)

我成功创建了一个Spring Boot Serviceclass,以便在Goets工作表上编写,遵循Sheets APIJava Quistart教程

我的问题是授权没有续订,所以在第一次成功通过浏览器进行身份验证后,几个小时后我就会获得401未授权.如何在不重新发布浏览器登录的情况下自动续订令牌?

在代码下面,提前感谢

import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver.Builder;
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.client.util.store.FileDataStoreFactory;
import com.google.api.services.sheets.v4.Sheets;
import com.google.api.services.sheets.v4.SheetsScopes;
import com.google.api.services.sheets.v4.model.AppendValuesResponse;
import com.google.api.services.sheets.v4.model.ValueRange;

@Service
public class GoogleSheetsServiceImpl implements GoogleSheetsService {

    private static final Log LOGGER = LogFactory.getLog(GoogleSheetsServiceImpl.class);

    /** Application name. */
    @Value("${google-sheets.application-name}")
    private String applicationName;

    /** Directory to store user credentials for this application. */
    private static final java.io.File DATA_STORE_DIR = …
Run Code Online (Sandbox Code Playgroud)

java spring-boot google-sheets-api

12
推荐指数
1
解决办法
274
查看次数

如果刷新,带有共享模块的 Angular 5 和 ngx-translate 会丢失翻译

我有一个使用 ngx-translate 的 angular 应用程序。以下版本:

"@angular/core": "5.2.6",
"@ngx-translate/core": "9.1.1",
"@ngx-translate/http-loader": "2.0.1"
Run Code Online (Sandbox Code Playgroud)

在 AppModule 类中,我添加了以下导入:

imports: [
    .....
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: (createTranslateLoader),
        deps: [HttpClient]
      }
    })
    ......
]
.....
export function createTranslateLoader(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个导出 TranslateModule 的 SharedModule:

exports: [
    // Modules
    TranslateModule,
    ....
]
Run Code Online (Sandbox Code Playgroud)

一切都像魅力一样,除非我刷新放置在与应用程序模块不同的模块中的页面(导入 SharedModule)。在这种情况下,我需要导航回主页(在 AppModule 中编码),一旦我到达主页 ngx-translate 就会返回工作,我可以使用 ngx-translate 重新导航到其他页面。

有谁能够帮助我?提前致谢

更新 似乎问题与我刷新页面时未定义 translateService.currentLang 的事实有关。如果我通过 translateService.use(language) 以编程方式设置 ngOnInit 中的语言,它会起作用。如何通过设置默认的 currentLang 来避免在每个组件中手动设置对 currentLang 变量的检查?

ngx-translate angular

5
推荐指数
1
解决办法
6039
查看次数