API пользовательского поиска Google - Сбой при извлечении данных из движка
Мне нужно сделать CRUD на поисковых системах. ОтдокументацияЭто выглядит довольно прямо вперед. Я продолжаю получать 401 ответ, хотя.
Я использую Google.Apis.Oauth2.v2 для получения токена:
String serviceAccountEmail = "[email protected]";
var certificate = new X509Certificate2(@"key.p12", "blah", X509KeyStorageFlags.Exportable);
var credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { "https://www.googleapis.com/auth/cse" }
}.FromCertificate(certificate));
bool result = credential.RequestAccessTokenAsync(CancellationToken.None).Result;
TokenResponse token = credential.Token;
Затем я добавляю токен к следующему запросу (Authorization: Bearer mytoken):
GET http://cse.google.com/api/<USER_ID>/cse/<CSE_ID>
Есть несколько вещей, которые прыгают на меня.
Точная цитата из документации:Хотя вы можете установить HTTP-запросы на URLhttp://cse.google.com/api/[USER_ID]/cse/[CSE_ID]вместо этого мы рекомендуем использовать следующий URL:
http://cse.google.com/api/[USER_ID]/cse/[CSE_ID]
Обратите внимание, что оба URL-адреса абсолютно одинаковы.
В разделе аутентификации образец использует ClientLogin, который устарел. Нет образцов с OAuth 2.0.
В примере документа говорится:
Каждая система пользовательского поиска идентифицируется уникальным идентификатором, созданным путем объединения идентификатора пользователя с идентификатором системы пользовательского поиска, разделенным двоеточием, например:
011737558837375720776: mbfrjmyam1g В этом случае идентификатор пользователя - 011737558837375720776, а идентификатор поисковой системы - mbfrjmyam.
Вы бы заметили, что идентификатор поисковой системы на 2 символа меньше, чем должен быть.
Нигде я не видел объем какhttps://www.googleapis.com/auth/cseMsgstr "Я только что скопировал это из сообщения stackoverflow.Я понимаю, что это очень длинный вопрос, но я надеюсь, что это поможет следующему человеку взглянуть на это и рассмотреть эти моменты.
Кто-нибудь знает, почему 401-е?