Objective-C GDataServiceGoogleSpreadsheet 检索所有电子表格返回 Domain=



我有这段代码过去有效,但现在似乎不起作用。这是来自github的实际Google代码的精简示例。从本质上讲,我将用户名和密码设置为Google帐户,其中包含Google云端硬盘顶层的电子表格,然后调用"fetch",期望没有返回错误(过去没有错误......相反,我得到了一个NSError,其描述为"Domain=com.google.GDataServiceDomain"和代码为"404"。

我已经检查了帐户,那里有电子表格,就像以前一样。我迷路了 - 电子表格 API 是否已更改?有没有一个简单的解决方法?我有几十个围绕目标C电子表格API制作的项目,而Objective C的API并没有定期更新。帮助!

- (void)findSpreadsheet
{
    if (mSpreadsheetFetchError == nil)
    {
        // Look for named spreadsheet
    }
    else
    {
        NSLog(@"Error fetching spreadsheet '%@': %@", self.spreadsheetName, [mSpreadsheetFetchError description]);
        self.fetchInProgress = NO;
    }
}
- (GDataServiceGoogleSpreadsheet *)spreadsheetService
{
    static GDataServiceGoogleSpreadsheet* service = nil;
    if (!service)
    {
        service = [[GDataServiceGoogleSpreadsheet alloc] init];
        [service setShouldCacheResponseData:YES];
        [service setServiceShouldFollowNextLinks:YES];
    }
    [service setUserCredentialsWithUsername:self.theUsername
                                   password:self.thePassword];
    return service;
}
- (void)fetch
{        
    [self setSpreadsheetFeed:nil];
    [self setSpreadsheetFetchError:nil];
    [self setWorksheetFeed:nil];
    [self setWorksheetFetchError:nil];
    [self setEntryFeed:nil];
    [self setEntryFetchError:nil];
    mIsSpreadsheetFetchPending = YES;
    NSLog(@"Submitting fetch request...");
    GDataServiceGoogleSpreadsheet *service = [self spreadsheetService];
    NSURL *feedURL = [NSURL URLWithString:kGDataGoogleSpreadsheetsPrivateFullFeed];
    [service fetchFeedWithURL:feedURL
                     delegate:self
            didFinishSelector:@selector(feedTicket:finishedWithFeed:error:)];
}
// spreadsheet list fetch callback
- (void)feedTicket:(GDataServiceTicket *)ticket
  finishedWithFeed:(GDataFeedSpreadsheet *)feed
             error:(NSError *)error
{
    [self setSpreadsheetFeed:feed];
    [self setSpreadsheetFetchError:error];
    mIsSpreadsheetFetchPending = NO;
    [self findSpreadsheet];
}

使用 Google 的代码示例实现了 OAuth2 解决方案。

相关内容

最新更新