2

iOS 用の Google ドライブの統合に取り組んでいますが、問題が発生しました。フォルダー内にファイルが存在するかどうかを確認する必要がありますが、どのように見えても「500 内部エラー」の応答が返されます。リクエストをまとめます。これは合法であるべきだと思います:

// self.directoryDriveFile.identifier is a valid folder identifier retrieved on previous request
GTLQueryDrive *query = [GTLQueryDrive queryForChildrenListWithFolderId:self.directoryDriveFile.identifier];

// add query to specify the file we're interested in (works in Java version...)
query.q = [NSString stringWithFormat:@"title='%@' and trashed=false",
           ZTCloudSyncLockFileName];
// stopping in debugger shows query.q: title='sync.lock' and trashed=false

// fire off request
[self.driveService executeQuery:query
              completionHandler:^(GTLServiceTicket *ticket,
                                  GTLDriveFileList *files,
                                  NSError *error) {
                  if (error == nil) {
                      if ([files.items count] > 0) {
                          self.foundLockfile = YES;
                      } else {
                          self.foundLockfile = NO;
                      }
                  } else {
                      DLog(@"An error occurred loading lockfile request: %@", error);
                      [self bailWithError:error performCleanup:NO];
                  }
              }];

クエリが実行されると、常にエラーが発生し、残念ながら次のエラー情報がまばらになります。

Error Domain=com.google.GTLJSONRPC
ErrorDomain Code=500 "The operation couldn’t be completed. (Internal Error)" 
UserInfo=0x99c4660 {
  error=Internal Error, 
  GTLStructuredError=GTLErrorObject 0x99c4360: {
  message:"Internal Error" code:500 data:[1]}, 
  NSLocalizedFailureReason=(Internal Error)}

句を指定して、次のより基本的なクエリも試しましたparentsが、残念ながら上記と同じエラーオブジェクトが表示されます。

GTLQueryDrive *altQuery = [GTLQueryDrive queryForFilesList];
altQuery.q = [NSString stringWithFormat:@"title='%@' and trashed=false and '%@' in parents",
              ZTCloudSyncLockFileName,
              self.directoryDriveFile.identifier];

これも機能するはずですが、500 エラーも発生します。


追加情報:これに取り組んでいる間、以下をテストしました:

  • ディレクトリ ルート内のフォルダを確認する - OK
  • ディレクトリルートにフォルダを作成 - OK
  • ディレクトリ ルートに sync.lock という名前のファイルがあるかどうかを確認します。OK
4

1 に答える 1