Implementación de la API de búsqueda personalizada de Google en iOS

Revisé varios enlaces para encontrar los pasos adecuados para implementar google customsearchapi en una aplicación ios y pasé unas 6-7 horas en ese proceso.

Campo de golf:

  • https://developers.google.com/custom-search/json-api/v1/introduction
  • http://developers.google.com/apis-explorer/#p/customsearch/v1/search.cse.list?q=a&_h=1&
  • https://productforums.google.com/forum/#!topic/customsearch/hT2fnfErVwo
  • Búsqueda personalizada de Google: error 403 en iOS
  • Y padre de todos

Todos estos proporcionan bits y paces de formación. ¿Hay algún lugar para tener un resumen, información precisa que pueda ayudar a implementar la búsqueda personalizada en una aplicación de iOS?

Breve paso del proceso:

  1. Crea una cuenta de Google (ignora si tienes una)
  2. Puede encontrar información útil relacionada con los precios en la parte inferior de esta página que le resultará útil (puede ignorar esto también)
  3. Crear proyecto y generar clave de API
    1. Ir a google consol y crear un proyecto
    2. Después de crear el proyecto, haga clic en él para ir a su detalle.
    3. En la barra izquierda debajo de Auth & API segment, haz clic en API.
    4. Ahora encontrará el enlace CustomSearchAPI en la sección API de Brows (ya que no está activado de manera predeterminada), actívelo haciendo clic en el botón de la derecha.
    5. Ahora haga clic en Credenciales, justo debajo de la opción de API
    6. En esta página, debajo de “Acceso público a API”, haga clic en Crear nuevo botón de clave, por el momento, seleccione la clave del navegador (ya que al principio queremos probarlo en el navegador), créelo y déjelo, como está por ahora.
  4. Crear motor de búsqueda personalizado
    1. Ahora en la nueva pestaña, abra la página Motor de búsqueda personalizado . En esta página, haga clic en Crear un motor de búsqueda personalizado, botón
    2. Esto lo llevará a crear una nueva página de motor de búsqueda , aquí ingrese su nombre de dominio en el campo “Sitios para buscar”. (Si no tienes una, no te preocupes, da cualquier cosa, que tenga www. Al principio y .com al final)
    3. Rellene el nombre, si aún no ha elegido uno, luego haga clic en crear.
    4. ¿Así que tienes un robot saltador para felicitarte? 😉 Si eso es. En esta página, suba a “Modificar su motor de búsqueda”, haciendo clic en el botón “Panel de control”
    5. Ahí lo tienes, ahora activa la búsqueda de imágenes, (si quieres)
    6. También en la sección “Sitios para buscar”, seleccione “Buscar en toda la web, pero enfatice el elemento incluido”, en lugar de, el predeterminado, que es “Buscar solo sitio incluido”.
    7. Eso es todo, en la parte inferior de esta página, haga clic en actualizar. Y luego vuelve al centro de la página y debajo del título “Detalle”, haz clic en la ID del motor de búsqueda, copia el Id y pégalo en algún lugar.
  5. Haga una búsqueda, usando la solicitud get :
    1. Para realizar una solicitud de obtención, utilice esta URL de solicitud
    2. En él, reemplace, {API_KEY} que ha creado en la sección “Crear proyecto y generar la clave API”
    3. Y reemplace {SEARCH_ENGINE_KEY} con el ID del motor de búsqueda que acaba de copiar pegado. Llámelo con un valor diferente, en la cadena de consulta, que “a”, https://www.googleapis.com/customsearch/v1 ? q = a & key = {API_KEY} & cx = {SEARCH_ENGINE_KEY} cambiar a con cualquier cosa que quieras buscar debes tener el hermoso JSON del resultado de búsqueda
  6. Otras cosas
    1. Si desea ver el estado de la solicitud, vuelva a la página de su proyecto, que puede solicitarla, cuántos de ellos fallaron, etc. Haga clic en la descripción general y obtendrá el gráfico para eso, te amo google
    2. Si tiene problemas con JSON, aquí hay algunos enlaces a su servicio,
      1. ¿Qué es JSON 1 , 2 ?
      2. Use JSON en ios .
      3. Use JSON en Android .

A continuación se proporciona la implementación en Swift 4 , de la solicitud "GET" del google custom search engine ,

 let apiKey = "Your api key here" let bundleId = "com.Your uniqueBundleId here" let searchEngineId = "Your searchEngine here" let serverAddress = String(format: "https://www.googleapis.com/customsearch/v1?q=%@&cx=%@&key=%@","Your query here" ,searchEngineId, apiKey) let url = serverAddress.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) let finalUrl = URL(string: url!) let request = NSMutableURLRequest(url: finalUrl!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10) request.httpMethod = "GET" request.setValue(bundleId, forHTTPHeaderField: "X-Ios-Bundle-Identifier") let session = URLSession.shared let datatask = session.dataTask(with: request as URLRequest) { (data, response, error) in do{ if let jsonResult = try JSONSerialization.jsonObject(with: data!, options: []) as? NSDictionary{ print("asyncResult\(jsonResult)") } } catch let error as NSError{ print(error.localizedDescription) } } datatask.resume() 
    Intereting Posts