Facebook OAuth “Bu URL'nin alanı uygulamanın alan adına dahil değil”


248

Öncelikle bu soruya bir süredir cevap aradığımı söyleyerek başlayalım ...

Facebook OAuth'u, makinemde yerel olarak geliştirilen uygulamamla çalışacak şekilde ayarlamaya çalışıyorum. Kullanmadan localhostbaşka bir alan adına (hala makineme yerel olarak) geçene kadar Facebook yetkilendirmesi ile her şey mükemmeldi . Şimdi aşağıdaki hatayı alıyorum.

URL Yüklenemiyor: Bu URL'nin alanı uygulamanın alanlarına dahil edilmedi. Bu URL'yi yükleyebilmek için, uygulamanızın tüm alan adlarını ve alt alan adlarını uygulama ayarlarınızdaki Uygulama Alan Adları alanına ekleyin.

Ana makinelerim dosyası içeriyor 127.0.0.1 photovote.dev (mükemmel çalışıyor)

Uygulamamdaki yönlendirme (Socialite kullanarak): http://photovote.dev/auth/facebook/callback

Facebook Uygulama Ayarlarımda ...

  • Uygulama Alanım: photovote.dev
  • Site URL'm http://photovote.dev/
  • Geçerli OAuth yönlendirme URI'lerim http://photovote.dev/auth/facebook/callback

Hata mesajı geldiğinde URL şu şekildedir:

https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fphotovote.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_type=code&state=0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD

Sorunun ne olduğunu kaybettim ...

Ekran Görüntüsü 1
Ekran Görüntüsü

Ekran Görüntüsü 2 resim açıklamasını buraya girin


3
Merhaba dangel, FB
client_id'inizi

@ dangel nasıl bu sorunu çözdü ?? Ben aynı sorunu yaşıyorum, ama çözemiyorum.
Ghimire

@Ghimire, benim durumumda, URL'yi değiştirmiştim ve müşterimi \ sırrını güncellememiştim. Aşağıdaki çözümleri okurken, hepsi aynı hatayı veren çeşitli farklı nedenler olabilir.
dangel

Yanıtlar:


82

Bu genellikle Uygulamayı Facebook'ta oluştururken yanlış ayrıntılar girdiyseniz olur. Veya mevcut bir Uygulamanın URL'lerini değiştirdiniz mi?

Lütfen bu sayfadaki APP ayarlarınızı tekrar kontrol edebilir misiniz?

https://developers.facebook.com/apps

  1. Doğru Uygulamayı seçin ve düzenle düğmesine tıklayın;

  2. URL'lerin ve yolların doğru girildiğinden ve Ultimate Facebook eklentisini yüklediğiniz siteye işaret ettiğinden emin olun.


3
Şimdi "mevcut bir Uygulamanın URL'sini değiştirdiniz" hakkında söylediklerinizi gördüm ve tam olarak böyle oldu ve sanırım yeni bir müşteri \ gizli kimliğinin oluşturulmasına neden oldu
dangel

Merhaba, ben de benim app fb oauth uygulamaya çalışıyorum. Ben fb app tüm ayrıntıları vermek var. Ancak, geri arama yönlendirmesi sırasında aşağıdaki hata görünecektir. InternalOAuthError: Strategy: OAuth2Strategy._createOAuthError'da (D: \ node_tutorials \ fb \ node_modules \ passport-oauth2 \ lib \ Strategy.js: 370: 17) adresinde erişim belirteci alınamadı \ lib \ Strategy.js: 166: 45, D: \ node_tutorials \ fb \ node_modules \ oauth \ lib \ oauth2.js: 177: 18
Anand

Bunu denemek için başka bir şey çalıştı: Geri aramalarınızı https'den http'ye değiştirmeyi deneyin. Bu, hem getLoginUrl () öğesini çağıran kodu değiştirmenin yanı sıra uygulama ayarlarındaki geri arama URL'lerini değiştirmeyi içerir. Geri aramalar, HTTPS kullanan siteye rağmen, nedense benim için HTTPS ile hiç çalışmadı.
Josh1billion

Aynı sorunum var, ancak sayfayı yerel olarak açtıktan sonra; Easyphp kurulumumun nasıl yapılandırıldığı gibi, yetkili adreslere 127.0.0.1:8000 ekledim , ancak hala çalışmıyor. FB komut dosyalarını çevrimiçi olarak test edebilir miyim?!?
jumpjack

"düzenle düğmesine tıklayın" hmm hangi düğme bu?
Alexander Mills

210

Birisi bununla karşılaşırsa ve bu ayarları arıyorsa (benim gibi)

Yapmalısın

  1. Sol tarafta, "+ Ürün Ekle" yi tıklayın ve "Facebook Girişi" ni seçin (benim için en üstteydi)
  2. Sol tarafta bulunan yeni ayarlara bakın
  3. Artık bu "Ürün Ayarları" nda bu OAuth ayarlarına sahip olacaksınız

resim açıklamasını buraya girin

Ek Bilgi: çalışmadığından emin olun ve benzeri geri arama URL eklemek http://localhost:3000için Valid OAuth redirect URIsFacebook Login ayarlar sayfasında bu alanda


22
Hata mesajının bahsettiği bu değildir. Geçerli OAuth yönlendirme URI'leriyle ilgili , burada olan şey değil, belirli bir hata mesajı var. Mesaj açıkça Ayarlar »Temel» Uygulama Etki Alanları anlamına gelir. Ancak, sorun doğru etki alanları doldurulsa bile hata iletisinin görünmeye devam etmesidir.
fritzmg

@HakamFostok kentsel sözlük bir yana, Matematik özellikle kodlama dünyasında LHS / RHS en.wikipedia.org/wiki/Sides_of_an_equation anlamı için daha yüksek sırada hüküm sürüyor .
Craig Lambie

9
Bu benim için düzeltildi. Etki alanını doğru doldurmuş olmama rağmen bir yönlendirme URL'si eklememiştim. Yönlendirme URL'sinin eklenmesi sorunu çözdü. Görünüşe göre FB bu sorun için yanlış hata mesajı gönderiyor.
Richard Garside

yerel olarak çalışıyorum ve bu benim url 127.0.0.1/CM/public benim Geçerli OAuth yönlendirme URI ne olmalı?
Youssef Boudaya

1
Bu benim için api v2.7'de çalıştı ve @ RichardGarside'ın yorumu doğru. Ben için ayarlanmış bir değeri yoktu Valid OAuth Redirect URIsve bu alan değerini eklemek senin güncelleme ile ilgili kötü FB hata mesajı çözüldü App Domains.
johnsampson

60

Ben de aynı problemi yaşadım. GetAccessToken işlev çağrısına bağımsız değişken olarak OAuth yönlendirme URI'm ekleyerek çözdüm:

$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")

Bu işleve herhangi bir argüman gönderilmezse, SDK çalışması gereken yönlendirme URI'sini kendisi oluşturur, ancak benim durumumda işe yaramadı.

Umarım bu birine yardımcı olur.


2
Web sitemi http'den https'ye taşıdıktan sonra çalıştırabilmemin tek yolu bu. Facebook Api ayarlarındaki tüm alanları değiştirdikten sonra bile işe yaramaz.
Chris

6
Bu kabul edilen cevap olmalı. Sorunu çözer!
tormuto

Benim durumumda, URL'nin kendisi boş parametreler içermemelidir. GetAccessToken için "www.example.com?param" verdiğimde, FB her zaman tam olarak aynı olduğundan emin olduğum getLoginUrl için verdiğim URI ile eşleşmediğini söyledi. "Www.example.com" kullanmak böyle bir hatayı artırmaz.
Chlind

2
teşekkür ederim . bununla çözüldü - facebooktan gerçekten kötü çünkü tüm bu hatalar soyut / belirsiz ve nereye baktığınızı da bilmiyorsunuz
digitalzoomstudio

Bu soruya cevap verir.
John

35

Uygulamanızın herkese açık olduğundan emin olun. + Ürün ekle'yi tıklayın Şimdi ürünlere gidin => Facebook Giriş Şimdi aşağıdakileri yapın:

Geçerli OAuth yönlendirme URI'leri: example.com/

Geri Arama URL'sinin Yetkisini Kaldırma: https://example.com/facebookapp http://unicodeitsolutions.com/


1
Ne için Deauthorize Callback URL : https://example.com/facebookappgerekli? Onsuz çalışır mı?
Ürdün

Geri Arama URL'sinin Yetkisini Kaldır zorunlu değildir ... kullanıcı uygulamamızın yetkisini kaldırdığında, facebook bize url tarafından ping gönderir.
Sanjoy Kanrar

20

İşte bu sorunu çözmek için yaptım: resim açıklamasını buraya girin

Temelde:

1) " Katıştırılmış Tarayıcı OAuth Girişini Etkinleştir " ni

2) Devre Dışı Bırak "Yeniden Yönlendirme URI'leri için Katı Mod Kullan ve benim yaptığım gibi bir yönlendirme URI'sı girin.

3) Tüm seçenekleri olduğu gibi bırakın.

4) Değişikliklerinizi kaydedin.

5) keyfini çıkarın :)


Bu benim için çözdü. Ben sadece bir öğretici yapıyor ve yerel olarak test gibi benim app kamu almak istemiyordu. @Bangbang
PHBeagle

1
Benim için Yönlendirme URI'ları için Sıkı Modu Kullan devre dışı bırakılamaz.
fdehanne

8

Aynı sorunu yaşadım ve yanlış bir client_id / Facebook App ID'den geldi.

Facebook uygulamanızı "herkese açık" veya "çevrimiçi" olarak değiştirdiniz mi? Bunu yaptığınızda, Facebook yeni bir Uygulama Kimliği ile yeni bir uygulama oluşturur.

URL'deki "client_id" parametre değerini Facebook gösterge tablonuzdaki ile karşılaştırabilirsiniz.


Tek yaptığım etki alanını ve site URL'sini değiştirmek için localhost'tan photovote.dev'e geçmekti. Yönlendirme URI'sını Uygulamamda ve Facebook ayarlarında güncelledim. Yeni bir uygulama oluşturmayı deneyebilirim
dangel

hmm, sanırım uygulama ayarlarında yeni bir kimliğin oluşturulmasına neden olan bir şey değiştirdim, çünkü artık doğru değil. Belki site URL'sini güncellediğimde? ne olursa olsun tekrar çalışıyor
dangel

Bu benim için çalıştı. Üretimde eski bir uygulama kimliği kullanıyordum.
Marcus W

8

Düzeltme şeklim: Geçerli OAuth Yönlendirme URI'leri metin kutusuna gittim ve sadece etki alanını değil , tam URL'yi ayarladım :

önce: https://my-website.com

sonra: https://my-website.com/facebookoauth/facebooklogin

(URL sizin durumunuzda farklı olabilir, tarayıcının adres çubuğundan kontrol edin).

Bu, Evet konumunda kilitlenmiş Yönlendirme URI'ları için Sıkı Mod Kullan ayarından kaynaklandı.


Bunun için çok teşekkürler. Bu benim sorunumu çözdü
vickris

7

URL Yüklenemiyor: Bu URL'nin alanı uygulamanın alanlarına dahil edilmedi. Bu URL'yi yükleyebilmek için, uygulamanızın tüm alan adlarını ve alt alan adlarını uygulama ayarlarınızdaki Uygulama Alan Adları alanına ekleyin.

Bugün bu sorunu yaşadım, Facebook belgelerini ve SDK'yı en az söylemek diğer geliştiricilere karşı saygısız ve kibirli buluyorum.

Çok fazla bilgi olmadan iki farklı konumda "uygulama etki alanlarına" sahip olmanın yanı sıra ("web" platformu eklerseniz 3 tane), uygulama ürünlerine / facebook girişine / ayarlarına gitmeniz ve Geçerli OAuth Yönlendirme URI'ları altına yönlendirme URL'nizi eklemeniz gerekir

Hata, oauth ayarları hakkında HİÇBİR ŞEY yazar.


1
Evet, bu ekstra adımı da yapmak zorundaydım. Dokümanlarla ilgili görüşlerinizi paylaşıyorum!
Magnus Smith

6

2017-10 itibariyle.

Sorunumu çözen çözüm.

Şu anda FB bu sürprizi yapıyor.

... uygulamanın İstemci OAuth Ayarları. İstemci ve Web OAuth Girişinin açık olduğundan emin olun ...

resim açıklamasını buraya girin

Ayarlama ayarları burada bulunur https://developers.facebook.com/apps/[your_app_itentifier Cialis/fb-login/ .

Sondaki eğik çizgi önemlidir. Uygulama kodunuzda ve FB yönetici ayarlarında eşleşmelidir. Bu, kodunuzun herhangi bir yerinde bir yapılandırmadır (geliştirici uygulaması için herhangi bir alan adını nasıl alacağınıza bakın):

{
    callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}

ve burada

resim açıklamasını buraya girin

Yerel bir Windows makinesindeki bir uygulamanın etki alanı adını almak için hostdosyayı düzenleyin . Özel isimleri tüm bu kurtulmak için iyidir localhost:8080, 0.0.0.0:30303, 127.0.0.0:8000, vb. Çünkü FB gibi bazı üçüncü taraf hizmetleri bazen127.0.0.0 isimleri .

Windows 10 hostsdosyasında:

C:\Windows\System32\drivers\etc\hosts

İlk dosyayı yedekleyin, farklı adda bir kopya oluşturun (Yerel Windows CMD'de çalışmaz. Git for Windows kullanıyorum , birçok Unix komutu var)

$ cp hosts hosts.bak

Bunu şuraya ekle hosts

127.0.0.1  myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1  www.myotherapp.io # In a browser http://www.myotherapp.io:2020

Örneğin liman kısmından kurtulmak :3000için NGINX'i kurun.


Bunun için teşekkürler, sondaki eğik çizgi gerekli olduğuna dair hiçbir fikrim yoktu!
Andy Holmes

11 Mayıs 2018'de, uygulamalardaki geri arama URL'si ve facebook'ta geçerli oauth yönlendirme URI'leri aynı olmalıdır. ve https zorunluluktur.
Yuda Prawira

Takip eden eğik çizgi zamanımı kurtarıyor. Teşekkürler!
HyoJin KIM


6

Çoğu zaman uygun geçerli OAuth yönlendirme URL'si eklememekle olur FB gösterge tablosunun ürün bölümüne eklememekle olur.

01. Uygulamanın temel ayarının sizinle feryat resim ile iyi olduğunu kontrol edin

resim açıklamasını buraya girin

02. ürün ekleyip eklemediğinizi kontrol edin

Aksi takdirde, aşağıda gösterildiği gibi + sinüs'ü tıklayarak giriş ürününü kolayca ekleyebilirsiniz.

Evet ise, ürün ayarının içine girdim. resim açıklamasını buraya girin

03. Geçerli OAuth yönlendirme URL'si sağlayıp sağlamadığınızı kontrol edin

Bu basit bir giriş yaptıktan sonra ne olması gerektiği anlamına gelir.Bu geri arama URl dışında değil. Feryat resimde görebilirsiniz Birkaç yönlendirme URL'leri ekledim. resim açıklamasını buraya girin

  1. daha fazla sorun varsa Videomu izleyin--> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s

2 yıllık bir soru ve harici sitelere bağlantılar bir cevabın ana içeriği olmamalıdır.
zzxyz

6

Facebook kısa süre önce ' Yönlendirme URI'ları için Katı Mod Kullan ' seçim düğmesini devre dışı bıraktı , bu yüzden giriş düğmesine bastığınızda tam olarak URI eklemeniz gerekiyor. Benim durumum için ekran görüntüsünde gösterildiği gibi oldu. Sorunu benim için çözdü :)

resim açıklamasını buraya girin



5

Benim durumumda, yapmam gereken yalnızca Gömülü Tarayıcı OAuth Girişini etkinleştirmek

resim açıklamasını buraya girin


Ben de tarayıcı tabanlı giriş kullanıyordum, bu yüzden karşılaştığım aynı sorun. Ayrıca tam yönlendirme URI'mi koymak zorunda olduğum bir giriş kutusu var.
absin

4

Kullandığım SDK sürümünü güncelleyene kadar hiçbir şey benim için gerçekten işe yaramadı. 5.0 ile başladım. 5.4.0 bile çalışmaz. 5.6.2'ye güncellediğimde, ilgili değişiklik bloglarında hiçbir şey olmamasına rağmen kusursuz çalıştı!


1
Tam olarak bu problemi yaşadım! "5.4.2" kullanıyordum ve "5.6.2" ye geçtim
John Smith

2

Bu seçenek portalda etkinleştirilmelidir:

resim açıklamasını buraya girin


Teşekkürler. Aynı sorunu vardı ve bu kaçırdığım anahtarı oldu.
timeon

Teşekkürler! Bu da benim için çalıştı (Google Firebase kullanıyordum. Ayrıca, projem için google tarafından bana verilen OAuth yönlendirme
URI'sına

2

Bunun başkalarına yardımcı olması durumunda, "Geçerli OAuth Yönlendirme URI'leri" zorunlu hale geldiğinde benim için eski bir sitede gerçekleşmeye başladı. Site hala V4 PHP SDK kullanıyordu ve sorun V5 SDK'ya yükseltilerek benim için çözüldü.


1

Uygulama etki alanı bölümünde, uygulama etki alanınızı yazıyorsunuz, ancak kullanıcı adınızı girmesini istediğiniz html sayfasının adını yani oturum açma alanınızı da eklemeniz gerekir. Benim durumumda, bunu localhost üzerinde test ediyordum ve giriş yolu localhost / login idi, Eğer sadece http : //localhost.com'u App domain bölümüne koyarsam , bu hatayı alıyorum. Ancak http: //localhost/login.com eklendikten sonra hata düzeltildi. ve ayrıca OAuth yönlendirme rotası için seçenek bulunmayan SDK'nın daha yeni sürümünde Uygulama ayarları değişti. OAuth jetonunu başarıyla aldıktan sonra yönlendirme yolunu doğrudan sunucu tarafından atamanız gerekir.


1

Bu benim için çalıştı:

Anlamanız gereken en önemli şey: Facebook her zaman " WWW " alanını kontrol edecektir . Bu yüzden www.alan_adiniz.dev adresinin tarayıcınızda çalıştığından .

Yerel sunucunuzda birden fazla sanal ana bilgisayarınız varsa, diğer bazı sanal ana bilgisayarların " www.alan_adiniz.dev " i geçersiz kılması mümkündür . Lütfen kontrol edin. Apache, İLK etki alanı tanımını (veya bağlantı noktalarını veya bu terimlerdeki bir şeyi seçecektir - Bu konuda uzman değilim, ancak hatalarla öğrenilmiştim). Bu sanal ana makine geçersiz kılma işlemi için hızlı bir düzeltme " www.alan_adiniz.dev " httpd-vhosts.conf 'dosyanın en üstünde sanal konak tanımı'.

" /Apache/conf/https-vhosts.conf " adresine gidin ve bunu dosyanın en üstüne yerleştirin:

<VirtualHost *:80>
<Directory "C:/your_app_folder_path/">
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    allow from All
</Directory>
ServerName your_domain.dev
ServerAlias your_domain.dev
DocumentRoot "C:/your_app_folder_path/"
</VirtualHost>

###### FOR SSL #####
<VirtualHost *:443>
    DocumentRoot "C:/your_app_folder_path/"
    ServerName your_domain.dev
    ServerAlias www.your_domain.dev
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/your_app_folder_path/">
        Options All
        AllowOverride All
        Require all granted 
    </Directory>
</VirtualHost>

Sonraki: Windows sistemi kullanıyorsanız, "hosts:" dosyanızı "C: \ Windows \ System32 \ drivers \ etc" dizininde iki satır ekleyerek düzenleyin:

127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev

Sonraki: Apache sunucunuzu yeniden başlatın ve her şey şimdi çalışmalıdır.


Umarım bu size yardımcı olur ve zaman kazanır. Neredeyse bir gün internette arama yaptım ve saçımı çekiyordum ve bunu bulana kadar yararlı bir şey bulamadım.


1

Ben de aynı sorun vardı ..... issu sürümü PHP SDK 5.6.2 ve düzeltme aşağıdaki dosyayı düzenleme oldu:

facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php

bu satırı değiştir

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);

için

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);


0

Aynı Facebook hatası Üretim ortamında da başıma geldi. Bunun nedeni, Facebook (Yerel, Üretim) ile kayıtlı 2 uygulamam vardı, ancak Yerel uygulama kimliğini kaynak koduna kodladım ve dağıtımdan önce Üretim uygulaması kimliği için kapatmayı unuttum.

En iyi uygulama, uygulama kimliğinin kaynak koduna sabit kodlanmaması gerektiğini belirtir, ancak yaparsanız, yanlışlıkla yaptığım gibi çeşitli Facebook uygulama kimliklerinizi uyuşmaz.


0

Kendi yerel sunucumu kullanıyorum.

http://localhost/my-siteURL olarak eklemek için:

https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/

benim için çalıştı.


0

FB giriş prosedürünü sıkılaştırdıkça sorun ve cevaplar değişmeye devam ediyor. Bugün, bu korku mesajını almaya başladım "Bu URL'nin alanı uygulamanın alan adlarına dahil edilmedi. Bu URL'yi yükleyebilmek için uygulamanızın tüm alan adlarını ve alt alan adlarını uygulama ayarlarınızdaki Uygulama Alan Adları alanına ekleyin."

Cevap şuydu: Şimdi FB tam yönlendirme uri'yi istiyor. Yani benim için, sadece https://www.example.com olduğu yerde şimdi https://www.example.com/auth/facebook/callback istiyor . Bunun "Geçerli OAuth yönlendirme URI'leri" alanına girmesi gerekir (Geliştirici / Facebook girişi-> ayarı)



0

ilk adım: tüm https://example.in veya ssl sertifika URL'sini kullanın, http://example.in kullanmayın

ikinci adım: faceboook uygulama ayarı-> temel ayar-> alan adınızı veya alt alan adınızı ekleyin

üçüncü adım: faceboook uygulama giriş ayarı-> Geçerli OAuth Yönlendirme URI'leri-> giriş yaptıktan sonra tüm yönlendirme URL'nizi ekleyin

dördüncü adım: faceboook uygulama ayarı-> gelişmiş ayar-> Alan Adı Yöneticisi-> alan adınızı ekleyin

Tüm bu adımları uygulayın ve ardından uygulama kimliğinizi, uygulama sürümünüzü, kurulum için uygulama sırrınızı kullanın


0

Magento 2 Social Login uzantısında, geçerli OAuth yönlendirme URI'lerini panelden kopyalamanız ve developers.facebook.com adresindeki İstemci OAuth Ayarları sayfasındaki Geçerli OAuth Yönlendirme URI'ları alanına bağlantı eklemeniz gerekir.



-1

Yanıtların çoğu, URL'yi uygulamanın alan adına eklemekle ilgilidir, ancak bir şirkette çalışırken bu erişiminiz yoktur.


bunu ana bilgisayar dosyasına ekleyin (/ etc / hosts) 127.0.0.1 www.alan_adiniz.com.tr

sanal bir ana bilgisayar oluşturun. Bunu apache sanal ana makinesi için kullandım

ServerAdmin webmaster @ localhost SunucuAdı www.alan_adiniz.com.tr

    ProxyPass / http://localhost:5006/
    RewriteMap  lc int:tolower
    LogLevel debug

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.