2016-06-15 3 views
5

Ich bin neu zu erstellen Erweiterungen, bitte bitte mit mir.Ich versuche, eine Erweiterung zu erstellen, die die aktuelle Seite URL über Facebook teilt. Ich folgte den Anweisungen Facebook-Entwickler-Website und erstellt ein Projekt, aber ich weiß nicht, was als App-Domäne, weil lokale Host funktioniert, aber Chrome-Erweiterung: // "ID" nicht.Facebook Login und Freigabe funktioniert nicht in Chrome-Erweiterung wegen der App-Domain

Beim Klicken auf die Schaltfläche "share" erscheint der Fehler "URL kann nicht geladen werden: Die Domain dieser URL ist nicht in den Domains der App enthalten. Um diese URL laden zu können, fügen Sie alle Domains und Subdomains Ihrer App hinzu App Domains in den App-Einstellungen. " Was stelle ich als App-Domain und URL?

+0

Ich bin auf diesem ..... fest stecken Haben Sie irgendeine Lösung gefunden ?? –

+0

Zum Teilen können Sie '/ sharer/sharer.php' verwenden http://stackoverflow.com/q/14283842/1363799 – terales

Antwort

3

Ich hatte das gleiche Problem. Dies ist meine Lösung:

  1. Schalten Sie Embedded Browser OAuth Anmeldung in Einstellungen Facebook Login (https://developers.facebook.com/apps/ -> wählen Sie Ihre App -> Add-Produkt)
  2. manuell anmelden Flow Implementieren (https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow). Öffne die URL in der neuen Registerkarte, lausche auf Änderungen und dann, wenn die Registerkarte Aktualisierung auf die Erfolgsseite vom URL-Zugriffstoken kommt, speichere das Token im Speicher und entferne die Registerkarte.
  3. Benutzer Facebook Graph API (https://developers.facebook.com/docs/graph-api)
0

Verwenden chrome.identity api Protokoll Problem zu vermeiden. Es sieht aus wie:

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); 
    }); 
Verwandte Themen