primer lugar , debes asegurarte de haber generado tu API Key y CX. Estoy suponiendo que lo haya hecho ya, de lo contrario puede hacerlo en esos lugares:
- API Key (es necesario crear una nueva clave de navegador)
- CX (es necesario crear un motor de búsqueda personalizado)
una vez que tenga los, aquí es una aplicación de consola simple que realiza la búsqueda y vuelca todos los títulos/enlaces:
static void Main(string[] args)
{
WebClient webClient = new WebClient();
string apiKey = "YOUR KEY HERE";
string cx = "YOUR CX HERE";
string query = "YOUR SEARCH HERE";
string result = webClient.DownloadString(String.Format("https://www.googleapis.com/customsearch/v1?key={0}&cx={1}&q={2}&alt=json", apiKey, cx, query));
JavaScriptSerializer serializer = new JavaScriptSerializer();
Dictionary<string, object> collection = serializer.Deserialize<Dictionary<string, object>>(result);
foreach (Dictionary<string, object> item in (IEnumerable)collection["items"])
{
Console.WriteLine("Title: {0}", item["title"]);
Console.WriteLine("Link: {0}", item["link"]);
Console.WriteLine();
}
}
Como puedes ver, estoy usando una deserialización JSON genérica en un diccionario en lugar de estar fuertemente tipada. Esto es por motivos de conveniencia, ya que no quiero crear una clase que implemente el esquema de resultados de búsqueda. Con este enfoque, la carga útil es el conjunto anidado de pares clave-valor. Lo que más le interesa es la colección de artículos, que es el resultado de la búsqueda (primera página, supongo). Solo estoy accediendo a las propiedades "título" y "enlace", pero hay muchas más de lo que puede ver en la documentación o inspeccionar en el depurador.
Su enlace "Referencia de API" está muerto ... – billy