Внедрение API пользовательского поиска Google в iOS

Я просмотрел несколько ссылок, чтобы найти правильные шаги для реализации goaza customsearchapi в приложении ios и провел в этом процессе около 6-7 часов.

Ссылки:

Все это обеспечивает биты и грани формирования. Есть ли какое-нибудь место для получения точной информации, которая может помочь реализовать пользовательский поиск в приложении iOS?

Ответ 1

Краткое описание процесса:

  • Создайте учетную запись Google (проигнорируйте ее, если она есть)
  • Вы можете найти некоторый мир информации, связанный с ценой внизу этой страницы, полезной (вы тоже можете игнорировать)
  • Создать проект и сгенерировать ключ API
    • Перейдите в google consol и создайте проект
    • После создания проекта нажмите на него, чтобы перейти к нему.
    • На левой панели в разделе Auth & API щелкните API.
    • Теперь вы найдете ссылку CustomSearchAPI в разделе API браузера (поскольку она не активирована по умолчанию), включите ее, щелкнув по кнопке справа.
    • Теперь нажмите "Учетные данные", чуть ниже параметра "API"
    • На этой странице в разделе "Открытый доступ к API" нажмите "Создать новую ключевую кнопку", теперь выберите ключ браузера (как сначала мы хотим проверить его в браузере), создайте его и оставьте его, как и на данный момент.
  • Создать систему пользовательского поиска
    • Теперь на новой вкладке откройте страницу пользовательского поиска. На этой странице нажмите "Создать пользовательский механизм поиска",
    • Это приведет вас к созданию новой страницы поисковой системы, здесь укажите свое доменное имя в поле "Сайты для поиска". (Если у вас нет ни одного беспокойства, дайте любую вещь, у которой есть www. В начале и .com в конце)
    • Заполните имя, если оно еще не выбрало, а затем нажмите кнопку create.
    • Итак, у вас есть прыгающий робо, чтобы поздравить вас?;) Да, это так. На этой странице выберите "Изменить свою поисковую систему", нажав кнопку "Панель управления".
    • Вот вы, теперь включите поиск изображений, (если хотите)
    • Также в разделе "Сайты для поиска" выберите "Поиск по всему веб-сайту, но укажите на включенный элемент", а не по умолчанию, который является "Искать только включенный сайт"
    • То есть, внизу этой страницы нажмите на обновление. Затем вернитесь к середине страницы и под заголовком "Деталь", нажмите Идентификатор поисковой системы, скопируйте идентификатор, вставьте его где-нибудь.
  • Сделайте поиск с помощью запроса получения:
    • Чтобы сделать запрос получения, используйте этот URL-адрес запроса
    • В нем замените, {API_KEY}, который вы создали в разделе "Создать проект и сгенерировать ключ API"
    • И замените {SEARCH_ENGINE_KEY} идентификатором поисковой системы, который вы только что скопировали. Вызовите его с каким-то другим значением в строке запроса, чем "a", https://www.googleapis.com/customsearch/v1? q = a & key = {API_KEY } & cx = {SEARCH_ENGINE_KEY} измените a на любую вещь, которую вы хотите найти, вы должны получить красивый JSON результата поиска
  • Другое
    • Если вы хотите увидеть статус запроса, вернитесь на страницу проекта, как можно запросить размещение, сколько из них не удалось, например, ect. Нажмите на обзор, и вы получите график для этого, полюбите вас google
    • Если у вас возникли проблемы с JSON, вот некоторые ссылки на ваш сервис,
      • Что такое JSON 1, 2?
      • Используйте JSON в ios.
      • Используйте JSON в android.

Ответ 2

Следующее обеспечивает реализацию в Swift 4 запроса "GET" от 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()