我有这段代码过去有效,但现在似乎不起作用。这是来自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 解决方案。