2016-06-15 47 views
5

Sono nuovo alla creazione di estensioni quindi ti prego di avere pazienza con me. Sto cercando di creare un'estensione che condivide l'attuale URL della pagina tramite Facebook. Ho seguito le istruzioni del sito degli sviluppatori di Facebook e ho creato un progetto, ma non so cosa mettere come dominio dell'app perché l'host locale funziona ma chrome-extension: // "id" no.Accesso a Facebook e condivisione non funzionante nell'estensione di Chrome a causa del dominio dell'app

Facendo clic sul pulsante di condivisione, viene visualizzato l'errore "Impossibile caricare URL: il dominio di questo URL non è incluso nei domini dell'app. Per poter caricare questo URL, aggiungere tutti i domini e sottodomini della vostra app al Campo App Domains nelle impostazioni dell'app. " Cosa inserisco come dominio e URL dell'app?

+0

Sono bloccato su questo ..... Hai trovato qualche soluzione ?? –

+0

Per la condivisione puoi usare '/ sharer/sharer.php' http://stackoverflow.com/q/14283842/1363799 – terales

risposta

3

Ho avuto lo stesso problema. Questa è la mia soluzione:

  1. Accendere incorporato Browser OAuth Entrata in contesti Facebook Login (https://developers.facebook.com/apps/ -> scegliere la vostra applicazione -> Aggiungi prodotto)
  2. Implementare flusso accedere manualmente (https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow). Apri l'URL di oauth in una nuova scheda, ascolta le modifiche e quando l'aggiornamento della scheda alla pagina di successo ottiene dal token di accesso dell'URL, salva il token nella memoria e rimuovi la scheda.
  3. utente grafico facebook api (https://developers.facebook.com/docs/graph-api)
0

Usa chrome.identity api per evitare problema di protocollo. Sembra:

let options = { 
    interactive: true, 
    url: 'https://www.facebook.com/dialog/oauth?' + 
     stringifyQuery(Object.assign({ 
     app_id: 'your app id here', 
     redirect_uri: `https://${chrome.runtime.id}.chromiumapp.org/provider_cb`, 
     response_type: 'token', 
     access_type: 'online', 
     })) 
    }; 

    chrome.identity.launchWebAuthFlow(options, function (redirectUri) { 
    if (chrome.runtime.lastError) { 
     callback(new Error((chrome.runtime.lastError as string))); 
     return; 
    } 
    const response = parseUrl(redirectUri); 
    access_token = response[`#access_token`]; 
    callback(null, access_token); 
    });