Можно ли использовать API Google Sheets из функции Azure? - PullRequest
1 голос
/ 19 сентября 2019

Я пытаюсь написать Google Sheet из функции C # Azure, используя Google Sheets Api .Проблема может быть глупой, но я, похоже, не могу найти способ добавить ссылку на нее.

Следуя документации, я установил свою функцию следующим образом:

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.Threading;

public static void Run(TimerInfo myTimer, TraceWriter log)
{
    log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
}

Я получаю ошибки в строках "использование" для Google.Apis.Я получаю:

... ошибка CS0246: не удалось найти тип или имя пространства имен 'Google' (отсутствует директива using или ссылка на сборку?)

Я понимаю, что мне нужно добавить ссылку типа #r "Google" в самом начале, но я не могу точно найти, какая именно;Я даже не нашел, возможно ли это сделать.

Как мне настроить его на работу с Google Sheet API?

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

Похоже, пакет листов Google не был импортирован в вашу функцию Azure.

Если вы используете функцию Azure v2, вам нужно загрузить файл function.proj в папку функции, чтобы добавить ссылку на ваш пакет nuget.И если вы используете функцию Azure v1, загрузите вместо этого файл project.json.

Вот пример функции.proj в функции Azure v2 (поскольку вы хотите использовать Google.Apis.Sheets.v4, поэтому яопубликуйте пример Google.Apis.Sheets.v4 для справки, если вы хотите добавить какой-то другой пакет, вы можете добавить ""):

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="Google.Apis.Sheets.v4" Version="1.41.1.1713" />
    </ItemGroup>
</Project>

После создания function.proj загрузите его впапку функции, выполнив следующие действия:

  1. Войдите в свою функцию на портале Azure и нажмите «Просмотр файлов» в правой части своей страницы.enter image description here

  2. Нажмите «Загрузить», чтобы загрузить файл function.proj, если вы не хотите загружать его, вы также можете нажать «Добавить»добавить файл function.proj и отредактировать его на портале.enter image description here

После этого, пожалуйста, обратите внимание на Журналы внизу страницы, чтобы увидеть, успешно ли восстановлены пакеты.И тогда вы можете использовать Google API лист.

Для получения дополнительной информации о том, как использовать пакет Nuget в функции Azure, пожалуйста, обратитесь к этому руководству: https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-csharp#using-nuget-packages

0 голосов
/ 23 сентября 2019

Я попробовал то, что @Hury хорошо объяснил и подробно описал, и, насколько я исследовал (и много), это сработало для многих людей.Но, к сожалению, по какой-то причине я не смог заставить работать файл function.proj.Я должен что-то упустить.

То, что мне удалось заставить его работать, - это создать следующий project.json файл:

{
  "frameworks": {
    "net46":{
      "dependencies": {
        "Google.Apis.Sheets.v4": "1.41.1.1713",
        "Newtonsoft.Json": "10.0.0.0"
      }
    }
   }
}

Процесс его создания такой же, как объяснил Хьюри,или вы можете написать это прямо на портале.Эта версия Google API находится на момент написания.Я добавил Newtonsoft, потому что, похоже, он нужен Google API, а его версия, похоже, нужна специально.

...