Hop til hovedindhold

Google Search API

Siesta AI - Google Search giver mulighed for programmatisk at udføre websøgningsanmodninger via Google Custom Search JSON API. Forbindelsen er read-only og returnerer struktureret JSON med resultaterne.

1. Opsætning af Google Search API (praktisk vejledning)

  1. Projekt i Google Cloud: brug et eksisterende eller opret et nyt projekt.
  2. Aktiver Custom Search API: søg efter "Custom Search API" i API-biblioteket og klik på Enable. Aktivering af Custom Search API i API-biblioteket
  3. Opret Programmable Search Engine: gå til https://programmablesearchengine.google.com/, åbn listen over søgemaskiner og klik på Tilføj. Listen over søgemaskiner i Programmable Search Engine Oprettelse af en ny søgemaskine
  4. Få Search Engine ID (cx): i detaljerne for søgemaskinen, åbn sektionen Basis og kopier Søgemaskine ID. Kopiering af Search Engine ID (cx)
  5. Generer API-nøgle: i Google Cloud Console -> APIs & Services -> Credentials -> Opret legitimationsoplysninger -> API-nøgle. Oprettelse af API-nøgle i Credentials
  6. Begrænsning af nøgle (anbefales):
    • Applikationsbegrænsninger: efter behov (Ingen/Websteder/IP).
    • API-begrænsninger: Begræns nøgle -> Custom Search API.
  7. Opsætning i Siesta AI:
    • Forbindelse -> Tilføj forbindelse -> GoogleSearch.
    • Udfyld Key (API-nøgle) og Cx (Søgemaskine ID) og vælg Shared/Private.
    • Gem via Fortsæt. Opsætning af GoogleSearch-forbindelse i Siesta AI

2. Formålet med dokumentet

Målet er at muliggøre programmatisk adgang til resultaterne af websøgningsanmodninger via Google Custom Search JSON API.

3. Oversigt over forbindelsen

  • Navn på forbindelse: GoogleSearch
  • Type: REST API - Google Custom Search JSON API
  • Autentificering: API-nøgle (Google Cloud) + Søgemaskine ID (cx) (OAuth er ikke nødvendigt)
  • Scope: kun read/search
  • Output: JSON-objekt med søgeresultater
  • Bem.: Der findes ingen skriveoperationer; alle kald er idempotente.

Google Custom Search JSON API muliggør programmatisk at hente søgeresultater fra Google via Programmable Search Engine, som skal oprettes og konfigureres før brug.

4. Generelle principper

4.1 Konfiguration

  • Søgemaskine ID (cx): identifikator for din egen søgeinstans.
  • API-nøgle: obligatorisk parameter for autoriserede kald til Google API.
  • Output: JSON indeholder metadata om søgningen og resultatsættet (titel, snippet, URL, pagemap osv.).

4.2 Spørgsmålssyntaks

  • Parameteren query (alias q) angiver den søgte term.
  • Avancerede operatorer som site:, intitle: osv. kan anvendes (standard Google query syntaks).

5. API-operationer

5.1 Søgning

Beskrivelse: Udfører en websøgningsanmodning via Google Custom Search JSON API.
HTTP: GET https://www.googleapis.com/customsearch/v1?key={API_KEY}&cx={SEARCH_ENGINE_ID}&q={query}

ParameterTypePåkrævetBeskrivelse
queryStringJaDen søgte term (f.eks. "AI best practices").

Output

  • Liste over resultater (titel, URL, snippet)
  • Metadata om antallet af resultater
  • Eventuelle yderligere blokke (pagemap)

Adfærd og grænser

  • Standard respons ~10 resultater pr. side; yderligere sider via start (uden for forbindelsens scope).

Typiske fejl

  • 400 Bad Request - ugyldig forespørgsel
  • 401 Unauthorized - ugyldig API-nøgle
  • 403 Quota Exceeded - daglig kvote overskredet

6. Sikkerhed og governance

  • Opbevar API-nøglen sikkert; foretræk begrænsninger (domæner/IP, begrænsning til Custom Search API).
  • Overvåg kvoter og log for fakturakontrol.
  • Log mindst: query streng, tidspunkt for kald, antal resultater, HTTP-status.

7. Driftsanbefalinger

  • Indstil en rotationspolitik for API-nøglen (Rotate key i Google Cloud Console).
  • Hold cx og API-nøgle i et sikkert hemmelighedsopbevaringssystem; opdater forbindelsen ved ændring af nøglen.

8. Eksempel på brug

GET https://www.googleapis.com/customsearch/v1
?key=YOUR_API_KEY
&cx=YOUR_SEARCH_ENGINE_ID
&q=cloud+infrastructure+best+practices

Forkortet JSON:

{
"queries": { "request": [ { "query": "cloud infrastructure best practices" } ] },
"items": [
{ "title": "...", "link": "...", "snippet": "..." }
]
}