Jawaban:
Sunting: 2-15-2012 Ini adalah cara menggunakan otentikasi FB untuk situs web host lokal.
Saya merasa lebih scalable dan nyaman untuk membuat aplikasi Facebook kedua. Jika saya membangun MyApp, maka saya akan membuat yang kedua bernama MyApp-dev.
Website
kotak centang di bawah 'Pilih bagaimana aplikasi Anda terintegrasi dengan Facebook' (Dalam versi Facebook terbaru Anda dapat menemukan ini di bawah Pengaturan> Dasar> Tambahkan Platform - Kemudian pilih situs web)if Rails.env == 'development' || Rails.env == 'test' Rails.application.config.middleware.use OmniAuth :: Builder lakukan penyedia: facebook, 'DEV_APP_ID', 'DEV_APP_SECRET' akhir lain # Produksi Rails.application.config.middleware.use OmniAuth :: Builder lakukan penyedia: facebook, 'PRODUCTION_APP_ID', 'PRODUCTION_APP_SECRET' akhir akhir
Saya lebih suka metode ini karena setelah diatur, rekan kerja dan mesin lain tidak memiliki pengaturan tambahan.
Tentu saja Anda bisa, cukup tambahkan localhost url (tanpa "http") di app_domain Anda dan kemudian tambahkan site_url Anda http://localhost
(dengan http)
Memperbarui
Facebook mengubah hal-hal sedikit sekarang, cukup buka pengaturan aplikasi dan di situs url cukup tambahkan http: //localhost
dan biarkan Domain Aplikasi kosong
Ini konfigurasi saya dan berfungsi baik untuk PHP API:
domain aplikasi
http://localhost
alamat URL
http://localhost:8082/
CATATAN: Pada 2012 Facebook memungkinkan pendaftaran "localhost" sebagai URL kembali. Anda mungkin masih membutuhkan solusi serupa untuk penyedia lain (mis. Microsoft satu).
Jika Anda membutuhkan nama domain asli yang terdaftar di Facebook (seperti my.really.own.domain.com), Anda dapat mengarahkan permintaan ke domain ini secara lokal ke mesin Anda. Pendekatan termudah di luar kotak pada OS apa pun adalah mengubah file "host" untuk memetakan domain menjadi 127.0.0.1 (lihat http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAA dan https: / /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file ).
Saya biasanya menggunakan Fiddler untuk melakukannya untuk saya (di Windows dengan IIS lokal) - lihat contoh di http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp .
if (oSession.HostnameIs("my.really.own.domain.com")) {
oSession.host="localhost:80";
}
Pendekatan file host dari pendekatan tidak berfungsi dengan Visual Studio Development Server karena memerlukan Url yang masuk ke localhost / 127.0.0.1. Jika Anda perlu bekerja dengannya (atau mungkin dengan IIS express) untuk mengesampingkan host - Menggunakan Fiddler dengan IIS7 Express
Dengan pusat pengembangan baru sekarang lebih mudah:
1) Biarkan domain aplikasi kosong.
2) Klik Tambah Platform
3) URL situs harus sama dengan path lengkap host lokal Anda.
4) Simpan Perubahan
Saya baru saja menemukan solusinya: Anda dapat membuat mesin lokal Anda dapat diakses dengan menggunakan http://localtunnel.com . Anda perlu (sementara) mengubah beberapa URL yang digunakan dalam kode aplikasi / html Anda sehingga tautan mengarah ke domain sementara, tetapi setidaknya facebook dapat menjangkau mesin Anda.
Dalam pengaturan dasar aplikasi Anda ( https://developers.facebook.com/apps ) di bawah Pengaturan-> Dasar-> Pilih bagaimana aplikasi Anda terintegrasi dengan Facebook ...
Gunakan "URL Situs:" dan "URL Situs Seluler:" untuk menahan masing-masing URL produksi dan pengembangan Anda. Kedua situs akan diizinkan untuk mengautentikasi. Saya hanya menggunakan Facebook untuk otentikasi sehingga saya tidak memerlukan fitur pengalihan situs seluler. Saya biasanya mengubah "Situs Mobile URL:" ke situs "localhost: 12345" saya saat saya menguji otentikasi, dan kemudian mengaturnya kembali normal ketika saya selesai.
Ada! Solusi saya berfungsi saat Anda membuat aplikasi, tetapi Anda ingin menggunakan otentikasi facebook di situs web Anda. Solusi di bawah ini TIDAK diperlukan ketika Anda ingin membuat aplikasi yang terintegrasi dengan halaman FB.
Masalahnya adalah Anda tidak dapat menempatkan "localhost" sebagai domain di halaman konfigurasi facebook aplikasi Anda. Alasan keamanan ?
Anda harus membuka file host Anda, di OSX / Linux dll / hosts dan tambahkan baris berikut: 127.0.0.1 dev.yourdomain.com
Domain Anda meletakkan apa pun yang Anda inginkan. Satu kesalahan adalah menambahkan baris ini: localhost dev.yourdomain.com (setidaknya pada osx snow leopard tidak berfungsi).
Maka Anda harus menghapus cache dns Anda. Pada OSX: ketik dscacheutil -flushcache di terminal. Terakhir, kembali ke situs web pengembang facebook online, dan di halaman konfigurasi aplikasi Anda, Anda dapat menambahkan domain "dev.yourdomain.com".
Jika Anda menggunakan program seperti Mamp, Easyphp atau apa pun, pastikan port untuk Apache adalah 80.
Solusi ini seharusnya berfungsi untuk Windows karena ia juga memiliki file host. Namun demikian, sejauh yang saya ingat Windows 7 tidak menggunakan file ini lagi, tetapi trik ini harus bekerja jika Anda menemukan cara untuk memaksa windows menggunakan file host.
Anda harus memilih produk Facebook 'login facebook' dan mengaktifkan Login Klien OAuth, 'Web OAuth Login' dan 'Embedded Browser OAuth Login' lalu bahkan jika Anda memberikan URL host lokal Ini akan berfungsi
ini berfungsi Juni 2018, bahkan setelah persyaratan HTTPS. Tampaknya aplikasi pengujian tidak memerlukan https:
buat aplikasi pengujian: https://developers.facebook.com/docs/apps/test-apps/
lalu di dalam aplikasi pengujian, ikuti langkah-langkah sederhana dalam video ini: https://www.youtube.com/watch?v=7DuRvf7Jtkg
Saya pikir Anda harus dapat mengembangkan aplikasi menggunakan server web pengembangan studio visual: Mulai aplikasi FaceBook baru di: http://www.facebook.com/developers/ . Kemudian atur pengaturan untuk situs Url dan url kanvas ke instance situs web Anda yang berjalan misalnya: http: // localhost: 1062 /
Berikut adalah beberapa tautan yang akan membantu Anda memulai dengan FaceBook:
Semoga ini membantu.
Coba ini ---
https://www.facebook.com/help/community/question/?id=589302607826562
1 - Klik Aplikasi dan kemudian pilih aplikasi Anda.
2 - Klik tombol Pengaturan di sisi kiri layar.
3 - Dalam pengaturan Dasar, klik tombol Tambah Platform di bawah konfigurasi pengaturan.
4 - Pilih Situs Web dalam dialog platform.
5 - Masukkan URL Anda (localhost berfungsi di sini).
6 - Di input teks App Domains, tambahkan domain Anda yang cocok dengan yang ada di URL.
7 - Simpan pengaturan Anda.
Misalkan Anda telah mendaftarkan aplikasi Anda sebagai:
app.domain.com
Anda hanya perlu memodifikasi file / etc / hosts dengan menambahkan
127.0.0.1 dev01.app.domain.com
Kemudian, ubah konfigurasi apache Anda
ServerName dev01.app.domain.com
dan restart apache.
Anda harus meletakkan URL Anda dalam variabel untuk menggunakannya sebagai parameter XML pada beberapa panggilan:
<fb:login-button registration-url="http://<?=$URL?>/register" />
Tidak memiliki kredit yang cukup untuk mengomentari jawaban pilihan teratas, tetapi setidaknya di lingkungan rel saya (berjalan 4), rails ada di http://localhost:3000
, tidak http://www.localhost:3000
. Ketika saya mengubahnya http://localhost:3000
, itu bekerja dengan baik. Tidak perlu mengedit file host apa pun.
Aplikasi akan berjalan dengan baik di localhost: 3000, Anda hanya perlu menentukan alamat https di mana aplikasi akan hidup ketika sedang dalam mode produksi.
Opsi 2 adalah menyediakan url atau situs web heroku Anda yang memungkinkan Anda memiliki sampel aplikasi dalam mode produksi.
Pembaruan terbaru: Anda tidak perlu memberikan url jika Anda mengujinya dalam pengembangan. Anda dapat mengosongkan bidang. Pastikan aplikasi Anda dalam mode pengembangan. Jika tidak mematikan status dari live.
Tidak perlu memberikan url situs, domain aplikasi, atau pengalihan yang sah.