2014-06-13 5 views
6

Google Custom Search restituisce questo errore 403 dalla mia app iPhone 7.1. Questa è la risposta quando si esegue il simulatore:Google Ricerca personalizzata: errore 403 in iOS

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "usageLimits", 
    "reason": "accessNotConfigured", 
    "message": "Access Not Configured. Please use Google Developers Console to activate the API for your project." 
    } 
    ], 
    "code": 403, 
    "message": "Access Not Configured. Please use Google Developers Console to activate the API for your project." 
} 
} 

C'è un errore nei passaggi sottostanti? Mi piacerebbe stabilire un processo di installazione CSE funzionante specifico per le app iOS. Speriamo che gli screenshot ad ogni passo aiutino e non confondano!

  1. Creare un motore di ricerca personalizzato (CSE) a https://www.google.com/cse/

  2. Da Impostazioni -> Generali, ottenere l'ID dei motori di ricerca. CSE search engine ID

  3. test CSE a https://developers.google.com/apis-explorer/#p/customsearch/v1/search.cse.list

    • Set "q" per tutti i termini di query di prova ("foo bar") e "CX" per l'ID dei motori di ricerca nel passaggio 2.
    • Press "Esegui" e ricevi i risultati della tua ricerca. Lavorano. Google fornisce anche questo URL, che ci ri-uso in Xcode al punto 8. Google API Explorer test results
  4. Per ottenere noi stessi una chiave per scopi di identificazione e di fatturazione, creare un nuovo progetto a https://console.developers.google.com/

  5. Sotto API & auth -> API -> Abilita "API di ricerca personalizzata". Nessun'altra API è abilitata. Developer Console APIs

  6. Sotto API & auth -> Credenziali -> Crea una nuova chiave iOS. Developer Console Credentials Nota: ho anche provato una chiave del browser e il risultato della ricerca ha restituito "Errore 400: valore non valido". Sono tornato al tasto iOS da quando sono su iOS e l'errore mi è sembrato meno grave.

  7. Aggiungere a questa chiave l'identificativo del gruppo da Xcode. Xcode bundle identifier

  8. In Xcode effettuare la vostra richiesta GET all'URL al punto 3. Sostituire {} YOUR_API_KEY con la chiave le credenziali nei passaggi 6-7.

GET request in Xcode

NSData * risposta contiene l'errore 403 mostrato sopra. Grazie per qualsiasi idea su cosa c'è che non va!

+0

Sto affrontando lo stesso errore, hai avuto qualche soluzione per questo? – suhit

+0

grazie per il promemoria! Ho risposto con quello che ha funzionato per me. – Orbusii

+1

Questa domanda mi ha aiutato a capire il processo completo qui è tutto quello che devi sapere per farlo funzionare: http://stackoverflow.com/a/27039037/656600 – rptwsthi

risposta

6

Mancava il campo di intestazione X-Ios-Bundle-Identifier.

NSString *bundleID = @"com.yourCompany.yourApp"; 
//...define request as above 
[request setHTTPMethod:@"GET"]; 
[request setValue:bundleID forHTTPHeaderField:@"X-Ios-Bundle-Identifier"]; 
+0

Grazie mille! Questo ha risolto il mio problema. – Joshua