2

我正在尝试将 Objective-C Google API 客户端与 Google 登录服务一起使用,以便我可以授权我的请求。

我已经设置了我的 Google 登录登录视图控制器,以便用户可以登录并接受应用程序运行所需的请求权限(范围)。然后,我使用以下代码向 AdSense API 发出请求:

    GTLServiceAdSense *service = [[GTLServiceAdSense alloc] init];
    service.APIKey = @"API KEY FROM CONSOLE";
    service.apiVersion = @"v1.4";
    [service setAuthorizer:[GIDSignIn sharedInstance].currentUser.authentication.fetcherAuthorizer];

    GTLQueryAdSense *query = [GTLQueryAdSense queryForAccountsReportsGenerateWithAccountId:@"ADSENSE PUBLISHER ID" startDate:@"DATE" endDate:@"DATE"];
    [service executeQuery:query completionHandler:^(GTLServiceTicket *ticket, id object, NSError *error) {
        if (error == nil) {
           //Deal with response.
        } else {
            NSLog(@"%@", error.description);
        }
    }];

仅当用户通过 GIDSignIn 进程成功登录时,才会运行此代码。但是,请求总是会产生错误:

错误域=com.google.GTLJSONRPCErrorDomain 代码=401“(需要登录)”UserInfo={error=需要登录,NSLocalizedFailureReason=(需要登录),GTLStructuredError=GTLErrorObject 0x7ff1a4029f80:{消息:“需要登录”数据:[1] 代码:401}} 2016-04-04 23:10:44.496

我以为我已经正确设置了授权设置,所以我不明白为什么会出现需要登录的消息。任何帮助将不胜感激。

4

0 回答 0