1

Задача с использованием .NET library for the Google Data API для перемещения по папкам на Google Диске, поиск необходимых электронных таблиц и изменение данных выбранных электронных таблиц.API приложений Google Apps: есть ли лучший способ найти соответствие между Документом API-документов документов и Таблицей API электронных таблиц?

Перемещение папок выполняется с использованием Google.GData.Documents.FolderQuery и других классов пространства имен Google.GData.Documents. После того, как найден правильный документ, необходимо управлять им, используя класс Google.GData.Spreadsheets.Spreadsheet. Теперь я нахожу соответствие между классами Google.GData.Documents.DocumentEntry и Google.GData.Spreadsheets.Spreadsheet, извлекая ключ документа из URL-адреса документа, итерируя все электронные таблицы, извлекая URL-адрес электронной таблицы и сравнивая эти два ключа. Код выглядит так:

private string GetKey(string url) { 
    string res = null; 
    Match match = Regex.Match(url, @"\?key=([A-Za-z0-9]+)"); 
    if (match.Success) { 
    res = match.Groups[1].Value; 
    } 
    return res; 
} 

private SpreadsheetEntry GetSpreadSheetForDocument(SpreadsheetsService serviceSS, DocumentEntry entrySS) { 
    SpreadsheetEntry res = null; 
    string strSSKey = GetKey(entrySS.AlternateUri.Content); 
    Google.GData.Spreadsheets.SpreadsheetQuery query = new Google.GData.Spreadsheets.SpreadsheetQuery(); 
    SpreadsheetFeed feed = serviceSS.Query(query); 
    foreach (SpreadsheetEntry entry in feed.Entries) { 
    if (GetKey(entry.AlternateUri.Content) == strSSKey) { 
     res = entry; 
     break; 
    } 
    } 
    return res; 
} 

Есть ли другой, более элегантный и правильный способ для этого?

ответ

2

Насколько я могу судить, не только нет лучшего способа сделать это, но даже эта техника не удастся. Что касается недавних (?) Изменений API Google Диска, ключи для ТОЛЬКО ДОКУМЕНТА, полученные по API-интерфейсу «Список документов» или «Таблицы», несовместимы. Хотя использование URL-адреса электронной таблицы, построенного из ключа, возвращаемого API-списком документов, приведет к созданию таблицы электронных таблиц, операции с электронными таблицами в этой записи могут привести к исключениям аутентификации «Недопустимый токен».

Ваш пробег может отличаться в зависимости от используемого вами стиля аутентификации. Я использую наименее рекомендуемый метод User Credentials.