Facebook Uygulaması: localhost artık uygulama etki alanı olarak çalışmıyor


94

Rails ve jQuery kullanarak Facebook için bir oyun yazıyorum. Facebook Javascript SDK'yı kullanmaya başladığımdan beri, localhost'u bir uygulama etki alanı olarak kullanmak gayet iyi çalışıyordu. Oyunumu hem yerel olarak hem de Heroku'da test edebildim.

Geçtiğimiz gün, Facebook'un geliştirici kullanıcı arayüzünde büyük bir güncelleme yaptığı görülüyor. Şimdi localhost'u bir uygulama etki alanı olarak eklersem, bana şu hatayı veriyor:

Bu, Tuval URL'si, Güvenli Tuval URL'si, Site URL'si, Mobil Site URL'si, Sayfa Sekmesi URL'si veya Güvenli Sayfa Sekmesi URL'sinden türetilmelidir. Aşağıdaki alanları kontrol edin ve düzeltin: localhost

Oyunum artık yerel olarak da çalışmıyor ve Javascript SDK kullanıcıda oturum açtığında bir hata alıyorum:

API Hata Kodu: 191 API Hatası Açıklama: Belirtilen URL, uygulamaya ait değil Hata Mesajı: Geçersiz redirect_uri: Verilen URL'ye Uygulama yapılandırması tarafından izin verilmiyor.

Herokuapp.com geçerli bir uygulama alanı olarak kabul edildiğinden, oyunumu dağıttığımda bu gerçekleşmiyor.

Artık localhost veya 127.0.0.1'i kullanamıyorsam oyunumu nasıl geliştirip test edebilirim?


Tuval URL'si, Güvenli Tuval URL'si, Site URL'si, Mobil Site URL'si, Sayfa Sekmesi URL'si veya Güvenli Sayfa Sekmesi URL'si için hangi değerlere sahipsiniz?
Igy

2
hey millet, anladım, yeni bir "test uygulaması" oluşturmanız gerekiyor, uygulama ayarları sayfasında bundan bahsetmeli, nihayet localhost'ta
saatlik

@LouisGrellet, "Üst düzey etki alanlarına izin verilmiyor" mesajı alıyorum. Dediğin gibi,
lanet olası

1
"Yönlendirme URI'leri için Katı Mod Kullan ifadesinin bulunduğu İstemci oAuth ayarları altında, Hayır olarak ayarlandığından ve isabet kaydettiğinden emin olun." - wp-native-articles.com/blog/news/…
eflat

Yanıtlar:


241

Protokol değişmeye devam ediyor gibi görünüyor ve kabul edilen cevap bugün benim için işe yaramadı. Diğer arama yapanlara yardımcı olması durumunda, bu benim için işe yaradı:

  • Tüm değişiklikler, Temel sekmesinin altındaki Ayarlar sayfasında yapılmıştır

1.) İlk seçenek kutusunun altında ortada, "+ Platform Ekle" yi tıklayın ve "Web Sitesi" ni (veya uygulamanız için uygun olanı) seçin.

2.) Yeni eklediğiniz web sitesi için açılan kutuda: Site URL'si: http://localhost:3000/

3.) Yukarıdaki kutuda (Ayarlar => Temel): Uygulama Alanı: localhost

4.) Sağ alttaki "Değişiklikleri Kaydet" i tıklayın

5.) Uygulama kimliğinin kopyalanıp kodunuza doğru şekilde yapıştırıldığından emin olun. (Kimlik, tekrar ihtiyacınız olursa o sayfadaki ilk kutudadır.)


1
Cevabı güncellediğiniz için teşekkür ederiz. Aslında, orijinal yanıt artık işe yaramıyor gibi görünüyor (yine de, Camilo ve rareclass orijinal yanıtlarınız için teşekkür ederim). Facebook'un bu değişiklikleri asla duyurmamış gibi görünmesi utanç verici.
Ravenstine

26
URL'nizin Ayarlar> Gelişmiş> Geçerli OAuth yönlendirme URI'leri bölümünde de listelenmesi gerektiğini unutmayın .
Kara Brightwell

4
Bu artık çalışmıyor :( URL Engellendi: Yönlendirme URI'si uygulamanın İstemci OAuth Ayarlarında beyaz listeye alınmadığı için bu yönlendirme başarısız oldu. İstemci ve Web OAuth Girişinin açık olduğundan emin olun ve tüm uygulama alanlarınızı Geçerli OAuth olarak ekleyin URI'ları yeniden yönlendir.
Maria Ines Parnisari

3
Artık "http" kullanmanıza izin verilmiyor. 'Https' olmalı.
iJames

2
Bu cevap artık doğru değil. Localhost'u temel ayarlar altında uygulama etki alanları kutusunda
kullanamazsınız

31
  1. Http://developers.facebook.com adresinde Uygulamanızın ayarlar sayfasına gidin.
  2. Sol üstteki (uygulamanızın adının yanında) açılır oku tıklayın ve "Test Uygulaması Oluştur" u tıklayın ve ona bir ad verin
  3. Yeni Test Uygulamasının Ayarlar> Temel bölümünde, Uygulama Etki Alanlarını "localhost" olarak ayarlayın
  4. Ayrıca Web Sitesi Site URL'sini " http: // localhost: 8888 " (veya kullandığınız bağlantı noktası) olarak ayarlayın.
  5. ÖNEMLİ: Bu uygulama, çevrimiçi uygulamanızdan farklı Uygulama Kimliği ve Uygulama Sırrı'na sahiptir. Son adım: Yerel ana makinenizde bulunan kodu Test Uygulamasının Uygulama Kimliği ve Uygulama Sırrı ile güncellediğinizden emin olun. Aksine, canlı sunucuda bulunan kod, ana Uygulamanın Kimliğini ve Sırrını kullanıyor olmalıdır.

Üretim hesabınızı geliştirici ortamıyla da çalışacak şekilde yapılandırmaya kıyasla en mantıklı / modern çözüm.
Carl Edwards

13

Uygulamanızı, heroku gibi uzak bir sunucuya dağıtmadan da test edebilirsiniz. İşin püf noktası, etc/hostsdosyayı şu şekilde güncellemektir :

127.0.0.1 mydomain.com

Ardından Facebook Uygulamasının ayarlarında, "[" ve ​​"]" olmadan [ http: //] alanadim.com yazın

Benim için bu şekilde çalıştı


Standart olmayan bir bağlantı noktası kullanıyorsanız, bu genellikle insanların paralel olarak birçok uygulama geliştirmeleri durumunda yaptığı şeydir.
mgol

1
Çalışacak , beklenen sonucu sağlamak için 8000 portunda hizmet vermek için python -m SimpleHTTPServer ve example.com:8000/test-facebook.html kullandım . 127.0.0.1 example.com'u / etc / hosts
Patrick

Bunu bildiğim iyi oldu! O zaman limanı görmezden geliyor gibi görünüyorlar, garip.
mgol

9

2017'de bununla uğraşan herkes için. Arayüz yeniden değişti. Bunu cevaba yorumlamak istedim ama yeterli itibarım yok. Uygulamanızın localhost url'si artık üç yere kopyalanmalıdır. Şu anda, (26 Ekim 2017) sıra:

1.) Soldaki menüden "Ayarlar" a tıklayın.

2.) İlk seçenek kutusunun altında ortada, "+ Platform Ekle" yi tıklayın ve "Web Sitesi" ni (veya uygulamanız için uygun olanı) seçin.

3.) Yeni eklediğiniz web sitesi için açılan kutuya localhost site url'nizi kopyalayın (fe http: // localhost: 3000 / )

4.) "Uygulama Alanı" nın üzerindeki kutuda aynı URL'yi kopyalayın

5.) Sağ alttaki "Değişiklikleri Kaydet" i tıklayın

6.) Soldaki menüde "Ürünler" altında "Facebook Oturumu Aç" ı tıklayın (veya mevcut değilse "+ Ürün Ekle" yoluyla ekleyin)

7.) Artık Facebook Giriş ayarlarında bulunuyorsunuz. Aynı url'yi "Geçerli OAuth yönlendirme URI'leri" alanına kopyalayın

Bu çalışmalı.


2
Facebook'un Geçerli OAuth Yönlendirme URI'leri için "http" ye artık izin
vermediğini unutmayın

5

Tuval url'niz veya mobil site url'niz olarak localhost'u eklemeniz yeterlidir; bu, Uygulama Alanı ayarınızda hem localhost hem de herokuapp.com'a sahip olmanızı sağlar. Ardından uygulamanız üretime geçtikten sonra kaldırmanız yeterlidir.


5

Bu yanlış yoldur. Uygulama ayarlarında Test sekmesini kullanarak bir test uygulaması oluşturmanız gerekir. Ardından, geliştirme aşaması url'nizi (örneğin localhost) uygulamanıza girebilirsiniz.


1
bir test uygulaması oluşturdum ama işe yaramadı. Daha fazla ayrıntı var mı?
Roger Gajraj

Evet, bunun doğru yol olduğuna inanıyorum, tüm talimatlara bakın stackoverflow.com/a/38173031/3625739
georgios

5

Firebase kullanan çözüm

Bu çalışmayı sağlamak için localhostbağlantı noktası 3000aşağıdakileri yaptım:

  1. Uygulama Oluşturun

Test Uygulaması Oluşturun

  1. Şimdi ok açılır menüsünden (sol üstte) "+ Test Uygulaması Oluştur" u seçin.

görüntü açıklamasını buraya girin

  1. localhostUygulama Alanlarına Ekle

görüntü açıklamasını buraya girin

  1. Ekle http://localhost:3000/Seçilen tarafından Sitesi URL'ye "+ Ekle Platformu"

görüntü açıklamasını buraya girin

Bu noktaya kadar burada verilen önceki tüm cevapları takip ettim, ancak hiçbir şey işe yaramadı.

Yani...

  1. Soldaki menüden "Ürün Ekle" yi seçin

  2. "Facebook Girişi" ekle

Varsayılan etki alanına sahip bir iş akışı karuseli sunulacak http://localhost:3000/, sonuna kadar "devam et" i tıklayın.

  1. Ürün Menüsünden "Facebook Oturum Açma> Ayarlar" ı seçin.

  2. Firebase OAuth yönlendirme URI'nizi girin (firebase konsolunuzda Facebook Girişini etkinleştirdiğinizde bulunur https://console.firebase.google.com , aşağıdaki örnek)

görüntü açıklamasını buraya girin

  1. URI'yi yapıştırın ve kaydedin.

görüntü açıklamasını buraya girin

Bitti.


2

URL'yi bağlantı noktasıyla kullanmayı deneyin, örneğin

    http://localhost:8000/

Aynı sorunu yaşıyordum ve şu anda bu çözümü buldum.


1
Platform olarak 'Facebook'ta Uygulama' eklemeniz ve localhost: 8000'i Tuval URL'sine eklemeniz gerekiyor
Tachun Lin

1

Bu benim için heroku'da çalışıyor, localhost şey işe yaramadı (benim için). Umut ediyorum bu yardım eder

1.) İlk seçenek kutusunun altında ortada, "+ Platform Ekle" yi tıklayın ve "Web Sitesi" ni (veya uygulamanız için uygun olanı) seçin.

2.) Yeni eklediğiniz web sitesi için açılan kutuda: Site URL'si: http://MYAPP.herokuapp.com/ (MYAPP'yi uygulamanızın adıyla değiştirin)

3.) Yukarıdaki kutuda (Ayarlar => Temel): Uygulama Etki Alanı: MYAPP.herokuapp.com (MYAPP'yi uygulamanızın adıyla değiştirin)

4.) Sağ alttaki "Değişiklikleri Kaydet" i tıklayın


1

Sadece benim gibi bununla mücadele eden başkaları için bir not. Bunu "test" uygulamalarıyla çalıştırmayı başaramadım. Gerçek uygulama ayarlarımı kullanıyorum (ve sadece ekleyerek

"http://localhost:3000/"

tuval URL'mde) herkesin önerdiği gibi çalıştı. Görünüşe göre test uygulamaları gerçek uygulamalarla aynı değil.


1

Rails uygulamamda genellikle http: // localhost: 3000 ile çalıştırdığım bir sorunla karşılaştım çünkü Facebook artık https kullanmak için Geçerli OAuth yönlendirmesini gerektiriyor.

Https'yi yerel olarak kullanmak için, bir tünel sağlayarak https kullanmanızı sağlayan [ngrok] [1] kullandım. Bunu yapmak için:

  1. Web sitelerine gittim ve programlarını indirdim
  2. Programın dosyasını çıkardım
  3. Konsolumda, ngrok'un çıkarıldığı dizine girdim ve Windows makinemde 'grok http 3000' girdim, diğerleri './grok http 3000' kullanabilir
  4. Bunu girdikten sonra ngrok, Facebook'taki Geçerli OAuth Yönlendirme URI'leri alanına koyduğum bir https adresi sağladı
  5. Sonra sunucumu başlattım ve localhost: 3000 yerine bu https adresini kullanarak ona erişebildim.

1

yerel test yapmak için tek yapmanız gereken uygulamayı kapatmak veya facebook uygulamasını geliştirme moduna almaktır. Ardından Facebook, uygulamaya tek başınıza erişmenize izin verecek


0

Benim için şu şekilde çalıştı:

Facebook uygulama kontrol panelini yapılandırma:

* 'Temel' sekmesinde:

1) Uygulama alanını boş bırakmak.

2) Herhangi bir platformu silmek. Anlamı: web sitesi yok, tuval platformu yok. (bu nedenle doldurulacak site URL alanı yok)

* "Gelişmiş" sekmesinde:

3) Geçerli OAuth yönlendirme URI'larını girdim:

http://localhost/myappfolder/redirect.php

4) kodumla ilgili olarak, c: /xampp/htdocs/localhost/myappfolder/index.php (bu dosya loginURL'sini oluşturur):

$helper = new FacebookRedirectLoginHelper('http://localhost/myappfolder/redirect.php');  

redirect.php dosyasının içinde:

$helper = new FacebookRedirectLoginHelper('http://localhost/myappfolder/redirect.php');  

ve bir seansım var! en sonunda! sonunda kendimi asmaya gerek yok: P

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.