Cara Menguji Koneksi Facebook Secara Lokal

193

Saya menggunakan ASP .NET dan Facebook Connect APIs. tetapi ketika saya menjalankan aplikasi dan tekan tombol Sambungkan itu kembali ke Situs web bukan ke server uji lokal yang ( http: // localhost: xxxx / test.aspx ) Jadi bagaimana saya bisa menguji Facebook secara lokal (yaitu Bagaimana saya bisa mengubah url panggilan balik)?

Haytham
sumber
4
Jawabannya ada di sini: forum.developers.facebook.com/viewtopic.php?pid=116136 Anda harus mengedit file 'C: \ WINDOWS \ system32 \ drivers \ etc \ hosts' untuk membuat domain Anda datang ke localHost
Haytham
101
Sistem ini tampaknya agak kurang diimplementasikan di pihak Facebook. Tampaknya tidak terpikir oleh mereka bahwa ada orang yang ingin menguji fitur selain pada server hidup. Dua solusi yang diberikan di sini - mengedit file host lokal untuk menipu server produksi dan mengarahkannya ke localhost, dan untuk sementara mengubah URL produksi langsung di Facebook ke localhost, keduanya desain yang sangat buruk di pihak Facebook. Facebook perlu menambahkan semacam kapasitas pengujian ke sistem mereka.
Paul Legato
2
Nah yang perlu dilakukan adalah memiliki 3 aplikasi -> live, QA dan Dev. Jadi jika aplikasi utama Anda adalah apps.facebook.com/ohnice/ QA dan dev dapat menjadi apps.facebook.com/ohnice_qa_sd/ adalah apps.facebook.com/ohnice_dev_fg/ ya sesuatu yang acak sehingga Anda tidak memiliki pengunjung yang tidak diinginkan ketika rumah Anda tidak rapi.
tgkprog
1
@ PaulLegato hal itu dilakukan sekarang (setelah bertahun-tahun ...). Lihat solusi saya atau salah satu solusi menggunakan fitur tes.
Erdal G.

Jawaban:

236

Cukup sederhana ketika Anda mengetahuinya.

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

Jika domain Anda adalah foo.com, tambahkan baris ini:

127.0.0.1    local.foo.com

Saat Anda menguji, buka local.foo.comdi browser Anda dan itu akan berfungsi.

gratisan
sumber
4
Untuk mengedit file host Anda pada MAC kemudian jalankan "sudo pico / private / etc / hosts" di terminal Anda, edit dan tekan "ctrl X" untuk menyimpan
Christoffer
@Christoffer: Saya percaya bahwa / private / etc hanyalah tautan simbolis ke / etc, jadi / etc / hosts dan / private / etc / hosts adalah file yang sama.
Gratis
1
Anda benar ... tetapi beberapa dari kita perlu memberi makan dan mengatakan "open / etc / hosts" tidak cukup;) FB masih gagal secara lokal dengan solusi ini untuk saya. Saya tidak menggunakan facebook JS
Christoffer
5
ini dulu bekerja untuk saya sampai baru-baru ini tetapi sekarang saya menerima connection refusedpengecualian ketika mencoba masuk, mungkin karena perubahan di sisi facebook. ide-ide tentang penyelesaian masalah sangat dihargai.
onurmatik
1
Jika Anda melakukan ini untuk mengakses aplikasi Rails yang berjalan secara lokal, Anda mungkin harus mengunjungi local.foo.com: 3000` di browser Anda karena aplikasi Rails biasanya dijalankan pada port itu.
David Tuite
102

Edit aplikasi Anda di www.facebook.com/developers/ dan atur "URL Situs" menjadi "http: // localhost / myapppath".

Setelah selesai - ubah kembali.

Alex
sumber
19
Facebook tidak "terhubung" kembali ke server Anda. JS mereka. Dan JS berjalan dalam konteks browser Anda. Yang tahu ke mana "localhost" menunjuk.
Alex
Itu tidak akan membiarkan saya menambahkan " warga lokal ", saya harus memastikan saya memiliki titik di sana. Ini berhasil: " local.site "
Pete
Beberapa fitur FB tidak berfungsi dengan ini. Misalnya - menyimpan pencapaian ke server FB. Ia menginginkan HTTPS, jadi trik localhost saya tidak berfungsi :(
Kostadin
2
Perlu dicatat bahwa validasi pada formulir aplikasi mengharuskan Anda untuk menggunakan localhost di url, misalnya http://localhost/myappdaripadahttp://myapp
graham
1
jika Anda menggunakan port lain gunakan pola ini: localhost: xxxx ), misalnya: localhost: 8080
m0z4rt
77

Saya sarankan untuk membuat aplikasi uji (hanya untuk lingkungan dev) di https://developers.facebook.com/apps dan set: Website with Facebook Loginproperti ke localhost Anda : pengaturan [port] .
opsi ini akan berfungsi dengan baik tanpa perlu mengubah host.
ingatlah untuk mengubah appId kembali ke aplikasi produksi Anda begitu Anda ditayangkan.

Sunting - dalam versi fb terbaru Anda akan menemukannya di bawah settingstab. masukkan deskripsi gambar di sini

Sagiv Ofek
sumber
2
Atau cukup gunakan file konfigurasi terpisah untuk, dev, staging, dan live.
Chris Barry
1
Tidak dapat menemukan "Situs web dengan Login Facebook" lagi.
ya
5
Tampaknya Anda harus mengklik tombol horisontal "abu-abu" + Tambahkan Platform. Di sana Anda memiliki "Situs web"
Luciano
75

Facebook telah menambahkan fitur versi uji.

Pertama, tambahkan versi uji aplikasi Anda: Buat Aplikasi Uji

Buat Aplikasi Uji

Kemudian, ubah URL Situs menjadi " http: // localhost " di bawah Situs web , dan tekan Simpan Perubahan

masukkan deskripsi gambar di sini

Itu saja, tapi hati-hati: ID Aplikasi dan kunci Rahasia Aplikasi berbeda untuk aplikasi dan versi pengujiannya!

Erdal G.
sumber
apa itu App Domain di panel pengaturan. saya sedang mengembangkan aplikasi ionik dengan login facebook
Pembuat chirag
1
@Chiragthaker Ini adalah domain yang akan di-host aplikasi produksi
Erdal G.
3
Ini adalah jawaban yang jauh lebih baik dalam kasus saya, daripada mengedit hostsfile, karena tidak perlu menggunakan HTTPS di server pengujian saya.
Petr Dlouhy
39

Anda tidak perlu melakukan sesuatu yang sulit!

Facebook → Pengaturan → Dasar:
tulis " localhost " di bidang " App Domains" lalu klik " + Tambahkan Platform " pilih " Situs Web " .

Setelah itu, dalam " Site Url " bidang menulis url localhost Anda
(misalnya: http://localhost:1337/something).

Ini akan memungkinkan Anda untuk menguji plugin facebook Anda secara lokal.

Manusia salju
sumber
1
apakah ada solusi untuk file di file path: /// android_assets / www? facebook tidak akan mengizinkan jalur itu untuk url situs
Vignesh Subramanian
harus https sekarang
Simon_Weaver
@Simon_Weaver dari mana Anda mendapatkan informasi ini? apakah didokumentasikan di suatu tempat?
kolistivra
@Simon_Weaver dari tautan yang Anda kirim: "Anda masih dapat menggunakan HTTP dengan alamat" localhost ", tetapi hanya saat aplikasi Anda masih dalam mode pengembangan."
kolistivra
5

Facebook tampaknya secara acak menonaktifkan kemampuan untuk mengatur localhost sebagai domain di aplikasi facebook Anda. Saya menemukan pekerjaan termudah di sekitar adalah untuk tunnel localhost saya ke web. Ini dapat dilakukan secara gratis menggunakan http://progrium.com/localtunnel/ atau dengan url khusus (lebih mudah karena Anda tidak perlu mengubah url setiap kali di facebook) https://showoff.io

rio517
sumber
3
Pilihan terowongan lainnya adalah ngrok.com
Mohamed Selim
3

Saya tidak bisa menggunakan solusi lain ... Yang berhasil bagi saya adalah menginstal LocalTunnel.net (https://github.com/danielrmz/localtunnel-net-client), dan kemudian menggunakan url yang dihasilkan di Facebook.

Alan Cardoso
sumber
1

Sepertinya FB baru saja mengubah halaman dev aplikasi dan menambahkan fitur yang disebut "Server IP Whitelist".

  1. Buka aplikasi Anda dan Pilih Pengaturan -> Tab Lanjut
  2. Dapatkan IP publik Anda (Google akan memberi tahu Anda jika Anda google "Whats My IP")
  3. Tambahkan IP publik Anda ke Daftar Putih IP Server dan klik Simpan Perubahan di bagian bawah
tujuh kali tujuh
sumber
bagaimana jika banyak pengembang dari lokasi berbeda bekerja di situs? Kami menggunakan VM (Vagrant) sehingga IPnya sama untuk setiap pengembang. Sayangnya facebook tidak mengizinkan untuk menggunakan IP lokal di daftar putih. Itu tidak bekerja.
ProblemsOfSumit
Jika saya membaca komentar Anda benar ini seharusnya tidak menjadi masalah. Anda perlu memasukkan IP publik Anda, yang Anda katakan sama untuk setiap pengembang (maksud Anda BUKAN sama). Jika Anda memiliki beberapa pengembang di situs yang berbeda dengan IP yang berbeda, Anda bisa menggunakan VPN untuk merutekan semua lalu lintas melalui 1 IP.
sevensevens
tidak, IP publik untuk mesin yang berbeda di lokasi yang berbeda tentu saja tidak sama, hanya IP lokal di setiap mesin yang sama. (mis. localhost). Saya tidak ingin mengarahkan apa pun. Untuk saat ini saya menggunakan localhost (hanya sebuah contoh) di aplikasi FB - yang berfungsi dengan baik. Tapi saya butuh solusi setelah halaman ditayangkan. Facebook memungkinkan untuk membuat "Tes-Aplikasi" di dalam suatu Aplikasi, yang mungkin merupakan solusinya tetapi saya belum mencobanya. EDIT: sepertinya itu solusinya
ProblemsOfSumit
1

buka halaman kanvas .. lihat di browser .. salin teks bilah alamat. sekarang pergi ke aplikasi facebook Anda pergi ke edit pengaturan

di situs web, di situs url rekatkan alamat itu

dalam integrasi facebook, rekatkan lagi alamat itu di url kanvas

dan juga kode yang sama di mana pun Anda memerlukan url kanvas atau url redirect ..

semoga akan membantu ..

Sangeeta Saharan
sumber
-6

Buat 2 aplikasi dan

Di /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
berkilau
sumber