Saya berencana untuk terhubung ke obrolan Facebook dari localhost saya. Saya perlu mendapatkan kunci sesi dari Facebook. Ketika saya memberikan URL situs sebagai localhost:8080
atau ip-address:8080
tidak berfungsi.
Saya membaca tentang menyiapkan dua aplikasi dengan 2 kunci API yang berbeda, satu berjalan di dev m / c dan lainnya di localhost, tetapi saya tidak cukup mengerti.
Adakah yang bisa menjelaskan cara menjalankan aplikasi Facebook di localhost?
facebook
localhost
facebook-chat
antusias
sumber
sumber
Jawaban:
Saya menulis tutorial tentang ini beberapa waktu lalu.
Poin terpenting adalah "URL Situs":
Dimana struktur foldernya seperti ini:
EDIT:
Kavya : bagaimana server FB mengenali localhost saya bahkan tanpa IP atau port ??
Saya tidak berpikir ini ada hubungannya dengan Facebook, saya kira karena
src
parameter iframe dimuat dari sisi klien, itu akan memperlakukan URL lokal Anda seolah-olah Anda meletakkannya langsung di browser Anda.Misalnya memiliki file di server online Anda dengan konten (misalnya
online.php
):Dan di direktori root localhost Anda, miliki file
test.php
:Sekarang kunjungi
http://your_domain.com/online.php
Anda akan melihat konten file localhost Anda!Inilah sebabnya mengapa langganan realtime dan membatalkan otorisasi callback (hanya untuk menyebutkan) tidak akan berfungsi dengan URL localhost! karena Facebook akan melakukan ping (mengirim permintaan http) ke URL ini tetapi jelas server Facebook tidak akan menerjemahkan URL itu ke Anda!
sumber
http://localhost:8080/auth/index.html
dan halaman web yang memberikan kesalahan adalahhttp://localhost:8080/auth/index.html
dan baris salurannya adalah:channelUrl : '//localhost:8080/auth/channel.html',
jika Anda menggunakan localhost:
di Facebook -> Settings -> Basic, di kolom "App Domains" tulis "localhost", lalu klik "+ Add Platform" pilih "Web Site",
itu akan membuat dua bidang "Mobile Site URL" dan "Site URL", di "Site URL" tulis lagi "localhost".
bekerja untuk saya.
sumber
Anda juga dapat mengedit file 'host' dan membuat variasi lokal dari domain Anda.
Contoh
Jika alamat aplikasi facebook Anda yang sebenarnya adalah "example.com", Anda dapat membuat domain "localhost.example.com" (hanya dapat diakses dari pc Anda) di file "hosts" yang mengarah ke "localhost" dan menjalankan situs web lokal Anda di bawah domain ini. Anda bisa menipu Facebook dengan cara ini.
sumber
C:/Windows/System32/drivers/etc/hosts
atau di Ubuntu di/etc/hosts
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 menyimpan URL produksi dan pengembangan Anda. Kedua situs akan diizinkan untuk mengautentikasi. Saya hanya menggunakan Facebook untuk otentikasi, jadi saya tidak memerlukan fitur pengalihan situs seluler apa pun. Saya biasanya mengubah situs "Mobile Site URL:" ke situs "localhost: 12345" saya saat menguji otentikasi, dan kemudian menyetelnya kembali ke normal setelah saya selesai.
sumber
2013 Agustus. Facebook tidak mengizinkan untuk menyetel domain dengan port untuk suatu Aplikasi, seperti contoh "localhost: 3000".
Jadi Anda dapat menggunakan https://pagekite.net untuk mengarahkan Anda
localhost:port
ke domain yang tepat.Pengembang Rails dapat menggunakan http://progrium.com/localtunnel/ secara gratis.
sumber
Jadi saya mendapatkan ini untuk bekerja hari ini. URL saya adalah
http://localhost:8888
. Domain yang saya berikan facebook adalah localhost. Saya pikir itu tidak berfungsi karena saya mencoba menarik data menggunakanFB.api
metode ini. Saya terus mendapatkan nama yang "tidak ditentukan" dan gambar tanpa sumber, jadi jelas tidak memiliki akses ke Grafik.Kemudian saya menyadari bahwa masalah saya sebenarnya adalah saya hanya menyampaikan argumen pertama
/me
kepadaFB.api
, dan saya tidak memiliki tanda. Jadi, Anda harus menggunakanFB.getLoginStatus
fungsi tersebut untuk mendapatkan token, yang harus ditambahkan ke/me
argumen.sumber
cukup tentukan url kanvas Anda sebagai http: // localhost / app_path .
sumber
Oke, saya tidak yakin ada apa dengan jawaban ini, tetapi saya akan memberi tahu Anda apa yang berhasil untuk saya seperti yang disarankan oleh pengembang senior di tempat kerja saya. Saya bekerja di Ruby on Rails dan menggunakan kode JavaScript Facebook untuk mendapatkan token akses.
Masalah: Untuk melakukan otentikasi, Facebook mengambil url dari bilah alamat Anda dan membandingkannya dengan yang ada di file mereka. Mereka tidak mengizinkan Anda menggunakan
localhost:3000
untuk alasan apa pun. Namun, Anda dapat menggunakan nama domain yang sepenuhnya dibuat-buat sepertiyoursite.dev
dengan menjalankan server lokal dan menunjukyoursite.dev
ke127.0.0.1:3000
atau ke mana pun host lokal Anda tunjuk.Langkah 1 : Instal atau perbarui Nginx
$ brew install nginx
(instal) atau$ brew upgrade nginx
(perbarui)Langkah 2 : Buka file konfigurasi nginx Anda
/usr/local/etc/nginx/nginx.conf
(biasanya di sini)/opt/boxen/config/nginx/nginx.conf
(jika Anda menggunakan Boxen)Langkah 3 Tambahkan sedikit kode ini ke dalam
http {}
blok AndaGantilah
proxy_pass
dengan kemana pun Anda ingin menunjukyoursite.dev
. Dalam kasus saya itu menggantikan localhost: 3000 atau yang setara127.0.0.1:3000
Langkah 4 : Edit file host Anda, di
/etc/hosts
Mac untuk disertakanFile ini mengarahkan domain ke localhost. Nginx mendengarkan di localhost dan mengalihkan jika cocok dengan aturan.
Langkah 5 : Setiap kali Anda menggunakan lingkungan pengembang, Anda menggunakan
yoursite.dev
di bilah alamat alih-alihlocalhost:3000
Facebook memasukkan Anda dengan benar.sumber
Forward adalah alat yang hebat untuk membantu pengembangan aplikasi facebook secara lokal, ini mendukung SSL sehingga hal sertifikat tidak menjadi masalah.
https://forwardhq.com/in-use/facebook
DISCLAIMER: Saya salah satu developer
sumber
Anda perlu mengatur aplikasi Anda untuk menjalankan https untuk localhost
Anda dapat mengikuti langkah-langkah yang diberikan untuk mengatur HTTPS di ubuntu
https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-12-04
Anda perlu melakukan langkah-langkah berikut:
instal apache (jika Anda tidak punya)
Langkah Pertama — Aktifkan Modul SSL
Langkah Kedua — Buat Direktori Baru
Langkah Tiga — Buat Sertifikat SSL yang Ditandatangani Sendiri
Dengan perintah ini, kita akan membuat sertifikat SSL yang ditandatangani sendiri dan kunci server yang melindunginya, dan menempatkan keduanya ke direktori baru. Baris terpenting adalah "Nama Umum". Masukkan nama domain resmi Anda di sini atau, jika Anda belum memilikinya, alamat IP situs Anda.
Langkah Empat — Siapkan Sertifikat
Temukan baris berikut dan edit dengan pengaturan Anda
Langkah Lima — Aktifkan Virtual Host Baru
sumber
Sebuah tipuan:
Gunakan MAMPPRO dan buat: nama server: alamat yang TEPAT dari situs web Anda (misalnya: helloworld.com) ke situs Anda di disk Anda
Di Facebook: Jadi Anda juga dapat menyimpan URL Situs asli Anda (mis .: helloworld.com)
Sekarang Anda mengerti bahwa ketika Anda mengetik situs web Anda di bilah alamat, Anda berada di lokal ! ..dan ketika Anda ingin online, cukup nonaktifkan server di MAMP PRO ..
:)
sumber
Tidak ada jawaban di atas yang berhasil untuk saya. Saya menjalankan FB API 2.5. Milik saya adalah kombinasi dari masalah yang mengarah pada kesuksesan setelah diselesaikan
Ini mungkin tidak ideal karena perubahan IP Dinamis dan seseorang mungkin dapat menggunakan DynDNS atau sesuatu yang serupa untuk membuat IP lebih "statis" tetapi itu berhasil untuk saya
sumber
Dalam kasus saya, masalahnya terungkap adalah chrome memblokir permintaan CORS dari localhost: 4200 ke situs web facebook api. Menjalankan Chrome dengan setelan ini: "YOUR_PATH_TO_CHROME \ Google \ Chrome \ Application \ chrome.exe" --disable-web-security --user-data-dir = "c: / chrome bekerja dengan sangat baik saat mengembangkan. Bahkan tanpa localhost ditambahkan ke pengaturan aplikasi facebook.
sumber