Как подключиться к API сайтов Google в .net - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь прочитать фид из учетной записи Сайтов Google (приложения Google) в .net. Я делаю это на стороне сервера, поэтому я создал свой ClientID в качестве «Сервисной учетной записи» в «консоли API Google» и включил делегирование по всему домену для сервисной учетной записи .

Я добавил этот идентификатор клиента и область действия (https://sites.google.com/feeds/)) на страницу " Управление доступом клиента API " в моей панели управления приложениями Google.

Теперь, когда я использую эту служебную учетную запись для доступа к каналу, появляется сообщение об ошибке «Нет прав доступа к этому каналу». Работает только тогда, когда учетная запись службы олицетворяет пользователя домена.

ServiceAccountCredential credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountEmail) { Scopes = scopes, User = "abc@domainName.com"}.FromCertificate(certificate));

Итак, мои вопросы:

1) Почему не работает только передача служебной учетной записи?

2) Есть ли способ, посредством которого учетная запись службы может выдавать себя за 1 учетную запись пользователя домена. Это потому, что если мой код взломан, он может получить доступ к конфиденциальным данным на сайтах.

3) Существует ли какой-либо другой подход, с помощью которого доступ на чтение / запись к сайтам Google может быть получен со стороны сервера без какого-либо вмешательства пользователя.

Я сослался на следующие сообщения во время моего анализа:

Подключение к API Сайтов Google в качестве «Сервисной учетной записи»

Google_Service_Directory - (403) Не авторизован для доступа к этому ресурсу / api

...