9
App Domains: localhost 
Website with Facebook login: http://localhost/auth 

idę http://localhost/auth/ iw mojej konsoli programisty Chrome widzę błąd: Given URL is not allowed by the Application configuration.: One or more of the given URLs is not allowed by the App's settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains.Co robię źle w tworzeniu aplikacji Facebook na localhost?

robię view-source, aby zobaczyć, co następuje:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<div id="fb-root"></div> 
<script> 
    // Additional JS functions here 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'myappidremovedfromstackoverflowquestion', // App ID 
     channelUrl : '//localhost/auth/channel.html', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    // Additional init code here 

    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 
</script> 
<p>hello</p> 
</body> 
</html> 

idę http://localhost/auth/channel.html i wyświetl źródło, aby wyświetlić pojedynczą linię:

<script src="//connect.facebook.net/en_US/all.js"></script> 

Odpowiedz

11

Powinieneś użyć niektóre domeny aliasu, gdy chcesz połączyć swoją aplikację Facebook ze swoim lokalnym środowiskiem.

Spróbuj wykonać następujące czynności:

  1. przejdź do etc/hosts (lub %systemroot%/system32/drivers/etc/hosts) pliku i dodać następujący wiersz:

    127.0.0.1 foo.local # alias domain

  2. Go do App > Settings i zarejestrować swoją aplikację po prostu za pomocą foo.local jako domena aplikacji.

  3. Dodaj swój adres URL strony (np http://foo.local/project/)

  4. zrobić.

Edited na 16.01.2016:

Facebook zmieniła swoje UI, wykonaj następujące kroki, aby to działa.

  1. idź do App > Settings > Basic (tab)
  2. Kliknij Add Platform wybierz „Witryna” i podaj domenę aliasu.
  3. Dodaj swoją domenę w sekcji App Domain.
  4. Gotowe.
+0

Ponieważ zegary SO nie pozwolą mi edytować odpowiedzi, opublikuję odpowiednią część jako komentarz: Problem polegał na tym, że w pewnym momencie ustawiłem prawidłowy identyfikator URI przekierowania OAuth w ustawieniach zaawansowanych na coś różne i to było przesłonięcie wszystkich innych ustawień. Opróżnienie tego pola naprawiło problem, ale oczywiście właściwą poprawką byłoby ustawienie tego pola na konkretny adres URL, pod który chcę otrzymać token dostępu. – necromancer

+0

Fantastyczna odpowiedź! – user123

+0

Oprócz tego, jeśli używasz niestandardowego portu, np. 127: 0.0.1: 8080, dla mnie działało to tylko wtedy, gdy dodałem port w desce rozdzielczej Facebooka. Tak więc w/etc/hosts 127.0.0.1, ale w FB: 127.0.0.1:8080 – willdanceforfun

Powiązane problemy