Pengembangan Facebook di localhost

177

Hanya ingin tahu apakah ada cara saya bisa mengembangkan aplikasi Facebook di localhost.

Abhishek
sumber

Jawaban:

246

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.

  • Buat aplikasi baru di https://developers.facebook.com/apps
  • (Baru 2/15/2012) Klik Websitekotak 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)
  • Setel bidang URL Situs ( BUKAN bidang Aplikasi Domain ) ke http: //www.localhost: 3000 (alamat ini untuk Ruby on Rails, ubah sesuai kebutuhan)

masukkan deskripsi gambar di sini

  • Di penginisialisasi aplikasi Anda, masukkan kode untuk mendeteksi lingkungan
    • Contoh Rails 3 kode
      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.

Eric Hu
sumber
3
Memberi +1 Ini aneh! Orang mengatakan bahwa Anda tidak dapat menambahkan localhost sebagai url aplikasi Anda. Tapi itu hanya bekerja untukku. Terima kasih!
Keyne Viana
15
Apakah ini masih berlaku untuk Anda? Saya tampaknya tidak dapat menambahkan localhost, atau 127.0.0.1.1000 atau yang serupa dengan domain aplikasi saya untuk Facebook.
Pete
Saya baru saja mencoba membuat yang baru dan mengalami masalah 'domain tidak valid'. Terima kasih atas tangkapannya
Eric Hu
1
@zoltarSpeaks Lihat jawaban saya yang diperbarui. Anda harus menggunakan bidang yang berbeda, bukan "domain aplikasi"
Eric Hu
1
akankah ini mengesampingkan config.omniauth initializers / devise.rb: facebook, 'APP_KEY', 'APP_SECRET',: scope => "email, offline_access .."?
menghilang
26

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: //localhostdan biarkan Domain Aplikasi kosong

stalin
sumber
Ini benar-benar berfungsi. Tidak perlu apa pun di sisi pagar kita.
godspeedelbow
10
Ini tidak berfungsi lagi Anda mendapatkan kesalahan tidak dapat menambahkan domain tingkat atas
Josh Bedo
20

Ini konfigurasi saya dan berfungsi baik untuk PHP API:

domain aplikasi

   http://localhost

alamat URL

   http://localhost:8082/
diperdagangkan
sumber
1
harus mengisi kedua input teks tersebut agar localhost dapat berfungsi
paulruescher
19

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

Alexei Levenkov
sumber
9

Facebook tidak lagi diizinkan URL panggilan balik 'localhost' untuk aplikasi Facebook FBML

Sudantha
sumber
memastikan bahwa dalam pengaturan keamanan Facebook Anda, Anda menonaktifkan 'Penjelajahan Aman'. Ini akan membuat hosting lokal Anda tidak tersedia jika diaktifkan.
supajb
9

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

JSV
sumber
1
Diverifikasi ini adalah cara terbaik untuk menginstal localhost. Masukkan saja URL dasar pada lingkungan pengembangan Anda seperti di atas - tanpa http: // dan facebook akan menambahkannya untuk Anda. Hal-hal sederhana! Terima kasih Jay
keade
1
Solusi itu memecahkan masalah saya ketika berjalan di localhost
Rola
8

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.

Martin T.
sumber
7

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.

Carter Medlin
sumber
5

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.

MartinL
sumber
berfungsi untuk win8.1 c: \ windows \ system32 \ drivers \ etc \ hosts. Anda mungkin perlu membersihkan 'Host resolver cache' di chrome URL = chrome: // net-internal / # dns
rnrneverdies
5

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 masukkan deskripsi gambar di sini

Abhinav bhardwaj
sumber
Ini membantu memindahkan masalah. Pesan dari FB pada 23/02/2018: Pada bulan Maret, kami membuat pembaruan keamanan ke pengaturan aplikasi Anda yang akan membatalkan panggilan dari URI yang tidak tercantum dalam bidang URI redirect OAuth valid di bawah. Pembaruan ini datang sebagai respons terhadap aktivitas berbahaya kami melihat pada platform kami, dan kami ingin melindungi aplikasi atau situs web Anda dengan mengharuskan mode ketat baru untuk mengarahkan URI.
Tim Tyler
1
Fb sekarang membutuhkan https untuk panggilan balik. Localhost tidak mendukung https.
huuthang
1
@huuthang jadi seluruh T / A ini sudah usang.
RGB
3

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:

  1. http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development/ ,
  2. http://nagbaba.blogspot.com/2010/05/experiencing-facebook-javascript-sdk.html ,
  3. http://apps.facebook.com/thinkdiffdemo/

Semoga ini membantu.

Vasile Laur
sumber
3

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.

Snm Maurya
sumber
2

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" />
Juan Eduardo Castaño Nestares
sumber
2

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.

Andrew Shenstone
sumber
2

app domain : localhost

site URL : http://localhost:4440/

bekerja untuk saya dengan UI baru.

sftsz
sumber
0

Solusi saya berfungsi dengan baik di localhost ..... Untuk penggunaan URL Situs http://localhost/ dan untuk penggunaan domain Aplikasi localhost/folder_name Rest semuanya sama ....... berfungsi dengan baik (meskipun menunjukkan redflag di App Domain..App berfungsi dengan baik)

hebat
sumber
0

Sangat mudah untuk pergi ke dashboard aplikasi di bawah pengaturan klik tab login facebook lalu pilih Terapkan HTTP Tidak, simpan pengaturanmasukkan deskripsi gambar di sini

Jerome Blacq
sumber
0

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.

masukkan deskripsi gambar di sini

vidur punj
sumber
0

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.

masukkan deskripsi gambar di sini

Vigneshwaran Sivalingam
sumber
1
Perhatikan bahwa jika Anda mengubah aplikasi Anda dari "hidup" ke "pengembangan" Anda akan dapat masuk dari localhost di mesin pengembangan, tetapi SEMUA PENGGUNA LANGSUNG ANDA TIDAK AKAN bisa login lagi.
webdevbyjoss
Saya melakukan ini dan itu masih memberi saya kesalahan dan tombol fb tidak akan muncul
joslinm
Setelah membuat aplikasi, klik tombol "Buat Aplikasi Uji" untuk mendapatkan aplikasi hanya untuk pengembangan / pengujian. Saya masih perlu menambahkan "localhost" ke domain aplikasi.
Tidak ada
@ J.Money Saya pikir itu mungkin berubah sekarang. Terima kasih telah memberi tahu saya.
Vigneshwaran Sivalingam