Google Plus SDK未刷新令牌(iOS)

Google Plus SDK未刷新令牌(iOS),ios,oauth,google-plus,google-oauth,google-cloud-endpoints,Ios,Oauth,Google Plus,Google Oauth,Google Cloud Endpoints,使用Google Plus SDK登录。起初一切都很好,但oauth令牌似乎在大约1小时后过期。我正在跟踪并使用 [signIn trySilentAuthentication] 在视图中显示函数 我知道令牌已过期,因为我正在服务器上使用Oauth,并收到401响应 同样值得注意的是,如果iPhone/iPad在屏幕打开的情况下仍插着电源,这并不是一个问题。在这种情况下,应用程序无限期地工作,没有任何问题 身份验证在我的云端点上失败。我正在初始化服务,如下所示: static GTLServ

使用
Google Plus SDK
登录。起初一切都很好,但oauth令牌似乎在大约1小时后过期。我正在跟踪并使用

[signIn trySilentAuthentication] 
在视图中显示函数

我知道令牌已过期,因为我正在服务器上使用Oauth,并收到401响应

同样值得注意的是,如果iPhone/iPad在屏幕打开的情况下仍插着电源,这并不是一个问题。在这种情况下,应用程序无限期地工作,没有任何问题

身份验证在我的云端点上失败。我正在初始化服务,如下所示:

static GTLService *service = nil;

if (!service) {
    service = [[GTLServiceMyModel alloc] init];
    service.retryEnabled = YES;
    [service setAuthorizer: [GPPSignIn sharedInstance].authentication];
 }
此外,如果应用程序的令牌已过期,我现在要做的就是使用iOS应用程序切换器关闭应用程序,然后再次启动应用程序。然后,该应用程序将在令牌到期前重新运行约一小时


有人遇到过这个问题吗?任何帮助都将不胜感激

通常1小时后的401响应表示刷新访问令牌失败。我遇到的一个原因是,当您使用已经提供刷新令牌的帐户测试应用程序时会发生这种情况。刷新令牌仅颁发一次,因此您的后续令牌授予可能在3600秒令牌到期后没有要使用的刷新令牌,因为在您第一次连接时已授予该令牌。尝试并手动取消此应用程序对google+的访问,然后重新连接

通常1小时后的401响应表示刷新访问令牌失败。我遇到的一个原因是,当您使用已经提供刷新令牌的帐户测试应用程序时会发生这种情况。刷新令牌仅颁发一次,因此您的后续令牌授予可能在3600秒令牌到期后没有要使用的刷新令牌,因为在您第一次连接时已授予该令牌。尝试并手动取消此应用程序对google+的访问,然后重新连接

我的问题是如何设置服务的授权人。此代码块仅在第一次调用我的方法时运行。来自Java背景的我对方法中的静态变量并不精通。现在我知道了!!刚把setAuthorizer移到块外,一切正常

static GTLService *service = nil;
if (!service) {
    service = [[GTLServiceMyModel alloc] init];
    service.retryEnabled = YES;
    [service setAuthorizer: [GPPSignIn sharedInstance].authentication];   
}

我的问题是如何设置服务的授权人。此代码块仅在第一次调用我的方法时运行。来自Java背景的我对方法中的静态变量并不精通。现在我知道了!!刚把setAuthorizer移到块外,一切正常

static GTLService *service = nil;
if (!service) {
    service = [[GTLServiceMyModel alloc] init];
    service.retryEnabled = YES;
    [service setAuthorizer: [GPPSignIn sharedInstance].authentication];   
}

令人费解的是,如果我重启这个应用程序,它还能正常工作一个小时,有时甚至更长时间。此外,如果应用程序一直开着,iPad正在充电,那么它永远不会有问题。令人费解的是,如果我重新启动应用程序,它还能正常工作一个小时,有时甚至更长时间。另外,如果应用程序一直开着,而iPad正在充电,那么它就永远不会有问题。这个代码片段与你问题中的代码片段完全相同?@Patrick,你能补充更多细节吗?你是如何解决这个问题的?我也有同样的问题,但我不明白,你是在iOS端还是在后端解决了这个问题?这个代码片段与你问题中的代码片段完全相同?@Patrick你能补充更多细节吗?你是如何解决的?我也有同样的问题,我不明白,你们是在iOS端还是后端端解决了这个问题?