Yanıtlar:
Edit: 2-15-2012 Bu bir localhost web sitesi için FB kimlik doğrulaması nasıl kullanılır.
İkinci bir Facebook uygulaması kurmayı daha ölçeklenebilir ve kullanışlı buluyorum. Uygulamamı oluşturuyorsam, Uygulamam dev adlı ikinci bir tane yapacağım.
Website
'Uygulamanızın Facebook ile nasıl entegre olacağını seçin' altındaki onay kutusunu tıklayın (Son Facebook sürümünde bunu Ayarlar> Temel> Platform Ekle - Daha sonra web sitesi seçin altında bulabilirsiniz)Rails.env == 'geliştirme' || Rails.env == 'test' Rails.application.config.middleware.use OmniAuth :: Oluşturucu sağlayıcı: facebook, 'DEV_APP_ID', 'DEV_APP_SECRET' son Başka # Üretim Rails.application.config.middleware.use OmniAuth :: Oluşturucu sağlayıcı: facebook, 'PRODUCTION_APP_ID', 'PRODUCTION_APP_SECRET' son son
Bu yöntemi tercih ederim çünkü kurulduktan sonra iş arkadaşlarınız ve diğer makinelerin ek ayarları yoktur.
Tabii ki, app_domain'inize url localhost ("http" olmadan) ve sonra site_url http://localhost
(http ile)
Güncelleme
Facebook şimdi işleri biraz değiştir, sadece uygulama ayarlarına git ve site url'sinde sadece http: //localhost
Uygulama Alan Adını ekle ve boş bırak
İşte benim yapılandırma ve PHP API için iyi çalışıyor:
uygulama alanı
http://localhost
Site URL'si
http://localhost:8082/
NOT: 2012 itibariyle Facebook, dönüş URL'si olarak "localhost" un kaydedilmesine izin vermektedir. Diğer sağlayıcılar için de benzer bir geçici çözüm gerekebilir (örn. Microsoft).
Facebook'a kayıtlı gerçek etki alanı adına ihtiyacınız varsa (my.really.own.domain.com gibi) bu etki alanına yerel olarak istekleri makinenize yeniden yönlendirebilirsiniz. Herhangi bir işletim sistemindeki en kolay yaklaşım, etki alanını 127.0.0.1 ile eşleştirmek için "hosts" dosyasını değiştirmektir (bkz. Http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAA ve https: / /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file ).
Genellikle benim için yapmak için Fiddler kullanıyorum (yerel IIS'li Windows'ta) - http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp adresindeki örneklere bakın .
if (oSession.HostnameIs("my.really.own.domain.com")) {
oSession.host="localhost:80";
}
Hosts dosya yaklaşımları, gelen URL'lerin localhost / 127.0.0.1 olmasını gerektirdiğinden Visual Studio Development Server ile çalışmaz. Ana bilgisayarı geçersiz kılmak için onunla (veya muhtemelen IIS express ile) çalışmanız gerekiyorsa - Fiddler'ı IIS7 Express ile kullanma
Yeni geliştirme merkezi ile artık daha kolay:
1) Uygulama alan adlarını boş bırakın.
2) Platform Ekle'yi tıklayın
3) Site URL'si, yerel barındırıcınızın tam yoluna eşit olmalıdır.
4) Değişiklikleri Kaydet
Bir çözüm buldum: Yerel makinenize http://localtunnel.com adresini kullanarak erişebilirsiniz . Bağlantıların geçici etki alanını göstermesi için uygulama kodunuzda / html'nizde kullanılan bazı URL'leri (geçici olarak) değiştirmeniz gerekir, ancak en azından facebook makinenize erişebilir.
Uygulamanızın Ayarlar-> Temel-> altındaki uygulamanızın Facebook ile nasıl entegre olacağını seçin temel ayarlarında ( https://developers.facebook.com/apps ) ...
Üretim ve geliştirme URL'lerinizi tutmak için "Site URL:" ve "Mobil Site URL:" kullanın. Her iki sitenin de kimlik doğrulamasına izin verilecek. Kimlik doğrulama için sadece Facebook kullanıyorum, bu yüzden mobil site yönlendirme özelliklerinden hiçbirine ihtiyacım yok. Kimlik doğrulamasını test ederken genellikle "Mobil Site URL'sini": "localhost: 12345" sitemle değiştiririm ve işim bittiğinde tekrar normale döndürürüm.
Var ! Bir uygulama oluşturduğunuzda çözümüm çalışıyor, ancak web sitenizde facebook kimlik doğrulaması kullanmak istiyorsunuz. FB sayfasına entegre bir uygulama oluşturmak istediğinizde aşağıdaki bu çözüme İHTİYAÇ YOKTUR.
Mesele şu ki, "localhost" u uygulamanızın facebook yapılandırma sayfasına bir alan olarak koyamazsınız. Güvenlik nedenleri?
OSX / Linux etc / hosts'de ana makine dosyanıza gitmeniz ve aşağıdaki satırı eklemeniz gerekir: 127.0.0.1 dev.alanadiniz.com
İstediğiniz her şeyi koyduğunuz alan adı. Bir hata bu satırı eklemektir: localhost dev.alanadiniz.com (en azından osx kar leoparı üzerinde çalışmıyor).
Sonra dns önbelleğinizi temizlemeniz gerekir. OSX'te: uçbirime dscacheutil -flushcache yazın . Son olarak, çevrimiçi facebook geliştirici web sitesine geri dönün ve uygulamanızın yapılandırma sayfasına "dev.alanadiniz.com" alan adını ekleyebilirsiniz.
Mamp, Easyphp veya başka bir program kullanıyorsanız Apache bağlantı noktasının 80 olduğundan emin olun.
Bir ana bilgisayar dosyası olduğundan bu çözüm Windows için de çalışmalıdır. Yine de, hatırladığım kadarıyla Windows 7 artık bu dosyayı kullanmıyor, ancak pencereleri bir hosts dosyasını kullanmaya zorlamak için bir yol bulursanız bu hile çalışmalıdır.
Facebook ürününü 'facebook login' seçmeli ve Client OAuth Login, 'Web OAuth Login' ve 'Embedded Browser OAuth Login' seçeneklerini etkinleştirmelisiniz.
HTTPS gereksiniminden sonra bile Haziran 2018'de çalışır. Bir test uygulamasının https gerektirmediği anlaşılıyor:
bir test uygulaması oluşturun: https://developers.facebook.com/docs/apps/test-apps/
daha sonra test uygulamasında bu videodaki basit adımları izleyin: https://www.youtube.com/watch?v=7DuRvf7Jtkg
Visual studio geliştirme web sunucusunu kullanarak uygulama geliştirebilmeniz gerektiğini düşünüyorum: http://www.facebook.com/developers/ adresinde yeni bir FaceBook uygulaması başlatın . Ardından URL sitesi ve tuval URL'si için ayarları web sitenizin çalışan örneğine ayarlayın, örneğin: http: // localhost: 1062 /
FaceBook ile başlamanıza yardımcı olacak birkaç bağlantı:
Bu yardımcı olur umarım.
Bunu dene ---
https://www.facebook.com/help/community/question/?id=589302607826562
1 - Uygulamalar'ı tıklayın ve ardından uygulamanızı seçin.
2 - Ekranın sol tarafındaki Ayarlar düğmesini tıklayın.
3 - Temel ayarlarda, ayarlar yapılandırmasının altındaki Platform Ekle düğmesini tıklayın.
4 - Platform iletişim kutusunda Web Sitesi'ni seçin.
5 - URL'nizi girin (localhost burada çalışır).
6 - Uygulama Etki Alanları metin girişine URL'nizdekiyle eşleşen alan adınızı ekleyin.
7 - Ayarlarınızı kaydedin.
Uygulamanızı şu şekilde kaydettiğinizi varsayalım:
app.domain.com
/ Etc / hosts dosyasını ekleyerek değiştirmeniz yeterlidir.
127.0.0.1 dev01.app.domain.com
Ardından, apache yapılandırmanızı değiştirin
ServerName dev01.app.domain.com
ve apache'yi yeniden başlatın.
URL'nizi, bazı aramalarda XML parametresi olarak kullanmak için bir değişkene koymanız gerekir:
<fb:login-button registration-url="http://<?=$URL?>/register" />
En çok oy alan cevap hakkında yorum yapmak için yeterli krediniz yok, ama en azından raylar ortamımda (4 çalışıyor), raylar http://localhost:3000
değil http://www.localhost:3000
. Bunu değiştirdiğimde http://localhost:3000
, gayet iyi çalıştı. Herhangi bir hosts dosyasını düzenlemenize gerek yoktur.
Uygulama localhost'ta iyi çalışır: 3000, sadece üretim modundayken uygulamanın yayınlanacağı https adresini belirtmeniz gerekir.
Seçenek 2 url veya size heroku web sitesi sağlar üretim modunda örnek uygulama var sağlar.
Son güncelleme: Geliştirme aşamasında test ediyorsanız herhangi bir url vermek zorunda değilsiniz. Alanları boş bırakabilirsiniz. Uygulamanızın geliştirme modunda olduğundan emin olun. Değilse, durumu canlıdan kapatın.
Site URL'si, uygulama alan adları veya geçerli yönlendirme oauth uri sağlamanıza gerek yoktur.