API de búsqueda personalizada de Google: falla la recuperación del motor

Necesito hacer CRUD en motores de búsqueda personalizados. Dedocumentación, se ve bastante sencillo. Sin embargo, sigo recibiendo 401 respuestas.

Estoy usando Google.Apis.Oauth2.v2 para obtener un token:

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;

Luego agrego el token a la siguiente solicitud (Autorización: Portador mytoken):

GET http://cse.google.com/api/<USER_ID>/cse/<CSE_ID>

Hay algunas cosas que me saltan.

Presupuesto exacto de la documentación:

Aunque puede establecer solicitudes HTTP en la URLhttp://cse.google.com/api/[USER_IDfont>/cse/[CSE_ID], recomendamos utilizar la siguiente URL:

http://cse.google.com/api/[USER_IDfont>/cse/[CSE_ID]

Tenga en cuenta que ambas URL son exactamente iguales.

En la sección de autenticación, la muestra está utilizando ClientLogin, que está en desuso. No hay muestras con OAuth 2.0.

En el ejemplo del documento, dice:

Cada motor de búsqueda personalizado se identifica mediante una ID única creada mediante la combinación de una ID de usuario con una ID de motor de búsqueda personalizada, separada por dos puntos, de esta manera:

011737558837375720776: mbfrjmyam1g En este caso, el ID de usuario es 011737558837375720776 y el ID del motor de búsqueda es mbfrjmyam.

Te habrás dado cuenta de que el ID del motor de búsqueda tiene 2 caracteres menos de lo que parece ser.

En ninguna parte he visto el alcance como "https://www.googleapis.com/auth/cse". Lo acabo de copiar de una publicación de stackoverflow.

Entiendo que esta es una pregunta muy larga, pero espero que esto ayude a la próxima persona a mirar esto y considerar estos puntos.

Alguien sabe por qué los 401?

Respuestas a la pregunta(0)

Su respuesta a la pregunta