Facebook Connect Yerel Olarak Nasıl Test Edilir


194

ASP .NET ve Facebook Connect API'leri kullanıyorum. ancak uygulamayı çalıştırdığımda ve Bağlan düğmesine bastığımda, Web Sitesine dönüyor, test yerel sunucusuna değil ( http: // localhost: xxxx / test.aspx ) Bu yüzden Facebook'u yerel olarak nasıl test edebilirim (ör. geri arama url'si)?


4
Cevap burada: forum.developers.facebook.com/viewtopic.php?pid=116136 , etki alanınızın localHost'unuza gelmesi için 'C: \ WINDOWS \ system32 \ drivers \ etc \ hosts' dosyasını düzenlemelisiniz
Haytham

102
Bu sistem, Facebook açısından oldukça zayıf bir şekilde uygulanmış görünüyor. Herhangi birinin özelliği canlı bir sunucu dışında test etmek isteyeceği aklına gelmemiş gibi görünüyor. Burada verilen iki çözüm - prodüksiyon sunucusunu taklit etmek ve bunu localhost'a yönlendirmek için yerel host dosyasını düzenlemek ve Facebook'taki canlı prodüksiyon URL'sini geçici olarak localhost'a değiştirmek, Facebook açısından oldukça kötü bir tasarımdır. Facebook'un sistemlerine bir çeşit test kapasitesi eklemesi gerekiyor.
Paul Legato

2
Bir çözüm, 3 uygulamaya sahip olmaktır -> canlı, QA ve Dev. Yani ana uygulamanız apps.facebook.com/ohnice/ QA ise ve geliştirici apps.facebook.com/ohnice_qa_sd/ apps.facebook.com/ohnice_dev_fg/ evet rastgele bir şey, böylece evinizde istenmeyen ziyaretçileriniz olmaz düzenli değil.
tgkprog

1
@PaulLegato şimdi yapılır (yıllar sonra ...). Çözümüme veya test özelliğini kullanan çözümlerden birine bakın.
Erdal G.

Yanıtlar:


236

Öğrendiğinde yeterince basit.

/etc/hosts(unix) veya C:\WINDOWS\system32\drivers\etc\hosts.

Etki alanınız foo.com ise, şu satırı ekleyin:

127.0.0.1    local.foo.com

Test ederken local.foo.comtarayıcınızda açın ve çalışmalıdır.


4
Ana bilgisayar dosyanızı MAC üzerinde düzenlemek için terminalinizde "sudo pico / private / etc / hosts" çalıştırın, düzenleyin ve kaydetmek için "ctrl X" tuşuna basın
Christoffer

@Christoffer: / private / etc'nin / etc'ye sembolik bir bağlantı olduğuna inanıyorum, bu yüzden / etc / hosts ve / private / etc / hosts aynı dosya.
freeall

1
Haklısın ... ama bazılarımızın kaşıkla beslenmesi gerekiyor ve "open / etc / hosts" demek yeterli değil;) FB yine de benim için bu çözümle yerel olarak başarısız oluyor. Facebook JS'yi kullanmıyorum
Christoffer

5
bu benim için yakın zamana kadar connection refusedçalışıyordu ancak şimdi giriş yapmaya çalışırken, muhtemelen facebook tarafındaki bir değişiklik nedeniyle istisna alıyorum. bir çözüm yoluna ilişkin herhangi bir fikir çok takdir edilmektedir.
onurmatik

1
Bunu yerel olarak çalışan bir Rails uygulamasına erişmek için yapıyorsanız, Rails uygulamaları genellikle o bağlantı noktasında çalıştırıldığı için tarayıcınızda local.foo.com: 3000` adresini ziyaret etmeniz gerekebilir.
David kalan oranlarda

102

Uygulamanızı www.facebook.com/developers/ adresinde düzenleyin ve "Site URL'si" ni "http: // localhost / myapppath" olarak ayarlayın.

Bittiğinde - geri değiştirin.


19
Facebook, sunucunuza geri "bağlanmaz". JS'leri var. Ve JS, tarayıcınız bağlamında çalışır. Hangi "localhost" un nereye işaret ettiğini bilir.
Alex

" Yerel site " eklememe izin vermiyordu , orada bir nokta olduğundan emin olmalıydım. Bu işe yaradı: " local.site "
Pete

Bazı FB özellikleri bununla çalışmaz. Örneğin - başarıları FB sunucularına kaydedin. HTTPS istiyor, bu yüzden localhost numaram çalışmıyor :(
Kostadin

2
Uygulamanın formdaki doğrulama url localhost kullanmanızı gerektirir belirterek 's değerinde, mesela http://localhost/myappziyadehttp://myapp
graham

1
başka bir bağlantı noktası kullanıyorsanız, bu kalıbı kullanın: localhost: xxxx ), örneğin: localhost: 8080
m0z4rt

77

Https://developers.facebook.com/apps adresinde bir test uygulaması oluşturmanızı (yalnızca geliştirme ortamı için) ve: Website with Facebook Loginproperty'yi localhost: [port] ayarlarınıza ayarlamanızı öneririm .
bu seçenek, ana bilgisayarları değiştirmeye gerek kalmadan sorunsuz çalışacaktır. Canlı yayına başladıktan
sonra appId'i tekrar üretim uygulamanıza değiştirmeyi unutmayın .

Düzenle - en son fb sürümünde, settingssekmenin altında bulacaksınız . görüntü açıklamasını buraya girin


2
Ya da geliştirme, hazırlık ve canlı yayın için ayrı yapılandırma dosyaları kullanın.
Chris Barry

1
Artık "Facebook Girişli Web Sitesi" bulunamıyor.
yehe

5
"+ Platform Ekle" büyük gri yatay düğmesine tıklamanız gerekiyor gibi görünüyor. İşte "Web Siteniz" var
Luciano

75

Facebook, test sürümleri özelliğini ekledi.

İlk olarak, uygulamanızın bir test sürümünü ekleyin: Test Uygulaması Oluşturun

Test Uygulaması Oluşturun

Ardından, Site URL'sini Web Sitesi altında " http: // localhost " olarak değiştirin ve Değişiklikleri Kaydet'e basın

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

Hepsi bu kadar, ancak dikkatli olun: Uygulama Kimliği ve Uygulama Gizli anahtarları, uygulama ve test sürümleri için farklıdır!


ayarlar panelinde Uygulama Alanı nedir. facebook oturum açma ile iyonik uygulama geliştiriyorum
Chirag thaker

1
Bu üretim uygulaması ev sahipliği yapacak etki alanıdır @Chiragthaker
Erdal G.

3
Benim durumumda bu, hostsdosyayı düzenlemekten çok daha iyi bir cevap çünkü test sunucumda HTTPS kullanmam gerekmiyor.
Petr Dlouhý

39

Zor bir şey yapmanız gerekmiyor!

Facebook'tan → Ayarlar → Temel:
yazma " localhost " in " Uygulama Alanları" alanına sonra tıklayın " Platform + Ekle " seçmek " Web Sitesi " .

Bundan sonra, " Site Url " alanına localhost url'nizi yazın
(örneğin :)http://localhost:1337/something .

Bu, facebook eklentilerinizi yerel olarak test etmenize olanak sağlar.


1
yol dosyasındaki dosyalar için bir geçici çözüm var mı: /// android_assets / www? facebook site url'si için bu yola izin vermeyecek
Vignesh Subramanian

şimdi https olmalı
Simon_Weaver

@Simon_Weaver bu bilgiyi nereden aldın? bir yerde belgelenmiş mi?
kolistivra


Gönderdiğiniz bağlantıdan @Simon_Weaver: "HTTP'yi“ localhost ”adresleriyle kullanmaya devam edebileceksiniz, ancak yalnızca uygulamanız hala geliştirme modundayken."
kolistivra

5

Facebook görünüşte rastgele bir şekilde localhost'u facebook uygulamanızda bir etki alanı olarak ayarlama özelliğini devre dışı bırakıyor. Bulduğum en kolay iş yerel ana makinemi web'e tünellemek oldu. Bu, http://progrium.com/localtunnel/ veya özel bir url kullanılarak ücretsiz olarak yapılabilir (facebook'ta her zaman url'yi değiştirmeniz gerekmediğinden daha kolaydır) https://showoff.io


3
başka bir tünel seçimi ngrok.com
Mohamed Selim

3

Diğer çözümleri kullanamadım ... Benim için işe yarayan, LocalTunnel.net'i (https://github.com/danielrmz/localtunnel-net-client) yüklemek ve ardından ortaya çıkan url'yi Facebook'ta kullanmaktı.


1

Görünüşe göre FB, uygulama geliştirme sayfasını tekrar değiştirdi ve "Sunucu IP Beyaz Listesi" adlı bir özellik ekledi.

  1. Uygulamanıza gidin ve Ayarlar -> Gelişmiş Sekmesini seçin
  2. Herkese açık IP'nizi alın (Google "IP'm Nedir" bağlantısını Google'da yaparsanız size söyleyecektir)
  3. Genel IP'nizi Sunucu IP Beyaz Listesine ekleyin ve alttaki Değişiklikleri Kaydet'i tıklayın.

sitede farklı konumlardan birden fazla geliştirici çalışıyorsa ne olur? VM (Vagrant) kullanıyoruz, böylece IP her geliştirici için aynı. Ne yazık ki facebook, Beyaz Listede yerel IP'lerin kullanılmasına izin vermiyor. Çalışmıyor.
ProblemsOfSumit

Yorumunuzu doğru okursam, bu bir sorun olmamalı. Her geliştirici için aynı olduğunu söylediğiniz genel IP'nizi girmeniz gerekir (aynı DEĞİLDİ mi demek istediniz). Farklı IP'lere sahip farklı sitelerde birden fazla geliştiriciniz varsa, tüm trafiği 1 IP üzerinden yönlendirmek için bir VPN kullanabilirsiniz.
sevensevens

hayır, farklı yerlerdeki farklı makineler için genel IP elbette aynı değildir, sadece her makinedeki yerel IP aynıdır. (örneğin localhost). Hiçbir şeyi yönlendirmek istemiyorum. Şimdilik FB uygulamasında localhost (sadece bir örnek) kullanıyorum - bu iyi çalışıyor. Ancak sayfa yayınlandığında bir çözüme ihtiyacım var. Facebook, bir Uygulama içinde "Test Uygulamaları" oluşturmaya izin veriyor, bu çözüm olabilir, ancak henüz denemedim. DÜZENLEME: çözüm bu gibi görünüyor
ProblemsOfSumit

1

tuval sayfasına gidin .. tarayıcıda görüntüleyin .. adres çubuğu metnini kopyalayın. şimdi facebook uygulamanıza gidin ayarları düzenlemeye gidin

web sitesinde, site url'sine bu adresi yapıştırın

facebook entegrasyonunda, o adresi tekrar tuval url'sine yapıştırın

ve ayrıca tuval url'si veya yönlendirme url'sine ihtiyaç duyduğunuz her yerde aynı kod ..

umarım yardımcı olur ..


-6

2 uygulama oluşturun ve

In /initializers/env_variables.rb

if Rails.env == 'development'
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
else
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
end
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.