Google API (Таблицы)

303
15 июня 2018, 06:00

Пытаюсь к приложению прикрепить прайс, который находится на Гугл диске. Начал пробовать подключать API. Но на тестовом приложении выпадает ошибка

Google.GoogleApiException: "Google.Apis.Requests.RequestError Requested entity was not found. [404]

using Google.Apis.Auth.OAuth2;
using Google.Apis.Sheets.v4;
using Google.Apis.Sheets.v4.Data;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace GoogleSheetsAPI4_v1console
{
 class Program
 {
    // If modifying these scopes, delete your previously saved credentials
    // at ~/.credentials/sheets.googleapis.com-dotnet-quickstart.json
    static string[] Scopes = { SheetsService.Scope.Spreadsheets }; // static string[] Scopes = { SheetsService.Scope.SpreadsheetsReadonly };
    static string ApplicationName = "WindowsDoors";
    static void Main(string[] args)
    {
        UserCredential credential;
        using (var stream =
            new FileStream("client_id.json", FileMode.Open, FileAccess.Read))
        {
            string credPath = System.Environment.GetFolderPath(
                System.Environment.SpecialFolder.Personal);

            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                Scopes,
                "user",
                CancellationToken.None,
                new FileDataStore(credPath, true)).Result;
            Console.WriteLine("Credential file saved to: " + credPath);
        }
        // Create Google Sheets API service.
        var service = new SheetsService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = ApplicationName,
        });

        String spreadsheetId2 = "price";
        String range2 = "1!F5";  // update cell F5 
        ValueRange valueRange = new ValueRange();
        valueRange.MajorDimension = "COLUMNS";//"ROWS";//COLUMNS
        var oblist = new List<object>() { "My Cell Text" };
        valueRange.Values = new List<IList<object>> { oblist };
        SpreadsheetsResource.ValuesResource.UpdateRequest update = service.Spreadsheets.Values.Update(valueRange, spreadsheetId2, range2);
        update.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.RAW;
        UpdateValuesResponse result2 = update.Execute();
        Console.WriteLine("done!");
    }

Код для тест нашел здесь же, на иностранной части.

Answer 1

Нашел косяк. Вместо названия книги: String spreadsheetId2 = "price"; Должен стоять ее ИД.

READ ALSO
ECDSA генерирует разную подпись

ECDSA генерирует разную подпись

Использую алгоритм ECDSA и библиотеку Bouncy CastleКлючи беру из

290
Масштабирование переменных в Modbas

Масштабирование переменных в Modbas

Столкнулся с проблемой маштабирования в Modbus tcpЧитаю данные на скаду

252
Как использовать UserControl в проекте VS2010

Как использовать UserControl в проекте VS2010

Подскажите как добавить пользовательский контрол в проект VS 2010Пробовал контролы из этой ветки Стака и из репозитория для VS2012 от неизвестного...

239
Как отобразить MessageBox unity3d

Как отобразить MessageBox unity3d

Как показать окно, аналог MessageBox из Windows Forms, только на андроид?

274