Google ドライブのファイルにローカル ファイルの変更日を設定する必要があります。最初に、動作しない drive.file.insert API を使用して設定しようとしました。SO では、drive.file.patch API を使用してファイルの変更を行うことができると説明されています。以下は、ファイルの変更日を更新するために Am が使用しているコードです。しかし、これを試してみると、エラーが発生します。
エラーが発生しました: エラー Domain=com.google.GTLJSONRPCErrorDomain Code=400 "操作を完了できませんでした。(無効な値: 無効な形式: "2013-09-261T15:09:57Z" is malformed at "1T15:09" :57Z")"
コード:
-(void)updateFileModificationDate:(GTLDriveFile*)file
{
NSDate *currentDate = [NSDate date];
NSDateFormatter *rfc3339DateFormatter = [[NSDateFormatter alloc] init];
[rfc3339DateFormatter setDateFormat:@"YYYY-MM-DD HH:MM:SS +HHMM"];
file.modifiedDate = [GTLDateTime dateTimeWithRFC3339String:[rfc3339DateFormatter stringFromDate:currentDate]];
GTLQueryDrive *getQuery =
[GTLQueryDrive queryForFilesPatchWithObject:file fileId:file.identifier];
getQuery.setModifiedDate = YES;
[self.driveService executeQuery:getQuery completionHandler:^(GTLServiceTicket *ticket, GTLDriveFile* object, NSError *error) {
if (error != nil) {
NSLog(@"An error occurred: %@", error);
}
else
{
NSLog(@"New file mod date:%@",object.modifiedDate);
}
}];
}
正しい日付形式を見つけるのを手伝ってください。答えがObjective-Cにあればありがたいです。
編集
別の質問は、設定した日付の形式に関係なく、Drive SDK は API 呼び出し中に必要な形式への変換を処理する必要があるということです。そうはなってないようです。Google Drive Objective-c SDK の不具合ですか?
ありがとう。