Facebook OAuth “Domain URL ini tidak termasuk dalam domain aplikasi”


248

Biarkan saya mulai dengan mengatakan saya sudah mencari jawaban untuk pertanyaan ini untuk beberapa waktu ...

Saya mencoba mengatur Facebook OAuth untuk bekerja dengan aplikasi saya yang sedang dikembangkan secara lokal di mesin saya. Semuanya berfungsi sempurna dengan otorisasi Facebook SAMPAI saya pindah dari menggunakan localhostke nama domain lain (masih lokal ke mesin saya.) Sekarang saya mendapatkan kesalahan berikut.

Tidak Dapat Muat URL: Domain URL ini tidak termasuk dalam domain aplikasi. Agar dapat memuat URL ini, tambahkan semua domain dan subdomain aplikasi Anda ke bidang App Domains di pengaturan aplikasi Anda.

File host saya berisi 127.0.0.1 photovote.dev (berfungsi sempurna)

Arahan ulang saya di aplikasi saya (menggunakan Socialite) adalah http://photovote.dev/auth/facebook/callback

Di Pengaturan Aplikasi Facebook saya ...

  • Domain Aplikasi saya adalah photovote.dev
  • URL situs saya adalah http://photovote.dev/
  • URI redirect OAuth saya yang valid adalah http://photovote.dev/auth/facebook/callback

URL pada saat pesan kesalahan adalah ..

https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fphotovote.dev%2Ffcallback%2Fcallback&2kabelcampuhampuhampampahampahampusampusampusampusampelampusampusampusampusampusampusampusampusampusampusampusampusampusampuskahada

Saya bingung apa masalahnya ...

Tangkapan Layar 1
Tangkapan Layar

Tangkapan Layar 2 masukkan deskripsi gambar di sini


3
Hai dangel, Anda mungkin ingin mengaburkan FB client_id Anda dari pos ini
a.benain

@ malaikat bagaimana Anda memecahkan masalah ini ?? Saya mengalami masalah yang sama, tetapi tidak dapat menyelesaikan.
Ghimire

@ Ghimire, dalam situasi saya, saya telah mengubah URL dan tidak memperbarui klien saya \ rahasia. Dari membaca solusi di bawah ini, sepertinya sebenarnya ada berbagai alasan yang berbeda semua memberikan kesalahan yang sama.
dangel

Jawaban:


81

Ini biasanya terjadi jika Anda memasukkan detail yang salah saat membuat Aplikasi di Facebook. Atau sudahkah Anda mengubah URL dari Aplikasi yang ada?

Bisakah Anda periksa kembali pengaturan aplikasi Anda di halaman ini?

https://developers.facebook.com/apps

  1. Pilih Aplikasi yang benar dan klik di tombol edit;

  2. Periksa URL & jalur yang dimasukkan dengan benar dan menunjuk ke situs tempat Anda menginstal plugin Ultimate Facebook.


3
Saya baru saja melihat apa yang Anda katakan tentang "Anda mengubah URL dari Aplikasi yang ada" itulah yang terjadi, dan saya kira itu menyebabkan klien \ ID rahasia baru akan dihasilkan
dangel

Hai, saya juga mencoba menerapkan fb oauth di aplikasi saya. Saya telah memberikan semua detail pada aplikasi fb. Tapi, kesalahan berikut akan muncul saat pengalihan panggilan balik. InternalOAuthError: Gagal mendapatkan token akses di Strategy.OAuth2Strategy._createOAuthError (D: \ node_tutorials \ fb \ node_modules \ passport-oauth2 \ lib \ strategy.js: 370: 17) di D: \ node_tutorials \ fb \ node \ lib \ strategy.js: 166: 45 di D: \ node_tutorials \ fb \ node_modules \ oauth \ lib \ oauth2.js: 177: 18
Anand

Hal lain untuk dicoba untuk saya: coba alihkan panggilan balik Anda dari https ke http. Itu melibatkan mengubah kedua kode yang memanggil getLoginUrl () serta mengubah URL panggilan balik dalam pengaturan aplikasi. Callback tidak pernah berfungsi dengan HTTPS untuk saya, untuk beberapa alasan, meskipun situs menggunakan HTTPS.
Josh1billion

Saya memiliki masalah yang sama, tetapi saat membuka halaman secara lokal; Saya menambahkan 127.0.0.1:8000 ke alamat yang diotorisasi, karena ini adalah cara pemasangan easyphp saya dikonfigurasi, tetapi masih tidak berfungsi. Bisakah saya menguji skrip FB secara online?!?
jumpjack

"klik di tombol edit" ummm tombol apa itu?
Alexander Mills

210

Jika seseorang menemukan ini dan sedang mencari pengaturan ini (seperti saya)

Kamu harus

  1. Di sebelah kiri, klik "+ Tambah Produk" dan pilih "Facebook Login" (berada di bagian atas untuk saya)
  2. Lihat pengaturan baru yang tersedia di sisi kiri
  3. Anda sekarang akan memiliki pengaturan OAuth ini pada "Pengaturan Produk"

masukkan deskripsi gambar di sini

Info Tambahan: Pastikan untuk menambahkan URL Panggilan Balik http://localhost:3000ke Valid OAuth redirect URIsbidang pada halaman pengaturan Login Facebook


22
Ini bukan yang dimaksud dengan pesan kesalahan. Ada pesan kesalahan spesifik mengenai URI redirect OAuth yang valid , yang tidak terjadi di sini. Pesannya dengan jelas merujuk pada Pengaturan »Dasar» Domain Aplikasi. Namun, masalahnya adalah bahwa meskipun domain yang benar telah diisi, pesan kesalahan masih muncul.
fritzmg

Di samping kamus perkotaan @HakamFostok, Matematika memerintah dengan urutan yang lebih tinggi untuk arti LHS / RHS en.wikipedia.org/wiki/Sides_of_an_equation , terutama dalam dunia pengkodean.
Craig Lambie

9
Ini memperbaikinya untuk saya. Meskipun domain saya diisi dengan benar, saya belum menambahkan url redirect. Menambahkan URL pengalihan memperbaiki masalah. Sepertinya saat ini FB mengirim pesan kesalahan yang salah untuk masalah ini.
Richard Garside

Saya bekerja secara lokal dan ini url saya 127.0.0.1/CM/public apa yang seharusnya menjadi URI redirect OAuth saya yang valid?
Youssef Boudaya

1
Ini bekerja untuk saya di api v2.7 dan komentar @ RichardGarside akurat. Saya tidak memiliki nilai yang ditetapkan untuk Valid OAuth Redirect URIsdan menambahkan nilai bidang ini menyelesaikan pesan kesalahan FB buruk terkait dengan memperbarui Anda App Domains.
johnsampson

60

Saya memiliki masalah yang sama. Saya memecahkannya dengan menambahkan URI pengalihan OAuth saya sebagai argumen ke panggilan fungsi getAccessToken:

$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")

Jika tidak ada argumen yang dikirim ke fungsi itu SDK menghasilkan URI redirect dengan sendirinya yang seharusnya berfungsi tetapi dalam kasus saya tidak.

Semoga ini bisa membantu seseorang.


2
Ini adalah satu-satunya cara saya bisa membuatnya berfungsi setelah memindahkan situs web saya dari http ke https. Bahkan setelah mengubah semua domain di pengaturan Facebook Api, itu tidak akan berhasil.
Chris

6
Ini harus menjadi jawaban yang diterima. Atasi masalahnya!
tormuto

Dalam kasus saya, url itu sendiri seharusnya tidak menyertakan parameter kosong. Ketika saya memberikan "www.example.com?param" untuk getAccessToken, FB selalu mengatakan itu tidak cocok dengan URI yang saya berikan untuk getLoginUrl, yang saya benar-benar yakin persis sama. Menggunakan "www.example.com" tidak menimbulkan kesalahan seperti itu.
Chlind

2
Terima kasih . dipecahkan oleh ini - benar-benar buruk dari facebook karena semua kesalahan ini abstrak / ambigu dan Anda tidak tahu di mana juga mencari
digitalzoomstudio

Ini menjawab pertanyaan.
John

35

Pastikan aplikasi Anda bersifat publik. Klik + Tambahkan produk Sekarang, masuk ke produk => Facebook Login Sekarang lakukan hal berikut:

URI redirect OAuth yang valid: example.com/

Hapus otorisasi URL Panggilan Balik: https://example.com/facebookapp http://unicodeitsolutions.com/


1
Untuk apa Deauthorize Callback URL : https://example.com/facebookappdibutuhkan? Akankah itu berhasil tanpa itu?
Jordan

Deautorisasi URL Panggilan Balik tidak wajib ... ketika pengguna akan melakukan deautorisasi aplikasi kami, facebook akan memanggil kami melalui url.
Sanjoy Kanrar

20

Inilah yang saya lakukan untuk mengatasi masalah ini: masukkan deskripsi gambar di sini

Pada dasarnya:

1) Aktifkan " Login OAuth Browser Tertanam "

2) Nonaktifkan " Gunakan Mode Ketat untuk Redirect URIs " dan masukkan URI redirect seperti yang saya lakukan.

3) Biarkan semua sisa opsi apa adanya.

4) Simpan perubahan Anda.

5) Nikmati :)


Ini menyelesaikannya untuk saya. Saya tidak ingin mempublikasikan aplikasi saya karena saya hanya melakukan tutorial dan mengujinya secara lokal. Terima kasih @bangbang
PHBeagle

1
Bagi saya, Gunakan Mode Ketat untuk Redirect URI tidak dapat dinonaktifkan.
fdehanne

8

Saya memiliki masalah yang sama, dan itu berasal dari ID aplikasi client_id / Facebook yang salah.

Apakah Anda mengganti aplikasi Facebook Anda menjadi "publik" atau "online? Ketika Anda melakukannya, Facebook membuat aplikasi baru dengan ID Aplikasi baru.

Anda dapat membandingkan nilai parameter "client_id" di url dengan nilai di dasbor Facebook Anda.


Yang saya lakukan adalah mengubah domain dan URL situs agar sesuai dari mengubah dari localhost ke photovote.dev. Saya memperbarui URI pengalihan pada Aplikasi saya dan juga di pengaturan Facebook. Saya mungkin hanya mencoba membuat aplikasi baru
dangel

hmm, saya kira saya mengubah sesuatu pada pengaturan aplikasi yang menyebabkan ID baru dibuat, karena Anda benar itu tidak cocok lagi. Mungkin ketika saya memperbarui URL situs? terlepas dari itu berfungsi lagi
dangel

Ini berhasil untuk saya. Sedang menggunakan id aplikasi lama dalam produksi.
Marcus W

8

Cara saya memperbaikinya: Saya pergi ke kotak teks URI Redirect OAuth Redirect dan mengatur URL yang tepat , bukan hanya domain :

sebelum: https://my-website.com

setelah: https://my-website.com/facebookoauth/facebooklogin

(url mungkin berbeda dalam kasus Anda, periksa di bilah alamat browser).

Ini disebabkan oleh pengaturan Use Strict Mode untuk Redirect URIs, yang terkunci pada posisi Ya.


Terima kasih banyak atas ini. Ini memperbaiki masalah saya
vickris

7

Tidak Dapat Muat URL: Domain URL ini tidak termasuk dalam domain aplikasi. Agar dapat memuat URL ini, tambahkan semua domain dan subdomain aplikasi Anda ke bidang App Domains di pengaturan aplikasi Anda.

Saya memiliki masalah ini hari ini, saya menemukan dokumentasi Facebook dan SDK tidak sopan dan arogan terhadap pengembang lain untuk sedikitnya.

Selain memiliki "domain aplikasi" di dua lokasi berbeda tanpa banyak informasi (3 jika Anda menambahkan platform "web"), Anda juga harus membuka produk / login facebook / pengaturan dan menambahkan URL pengalihan Anda di bawah URI Validasi OAuth Redirect URI

Kesalahan mengatakan TIDAK ADA tentang pengaturan oauth.


1
Ya, saya harus melakukan langkah ekstra ini juga. Saya membagikan pandangan Anda pada dokumentasi!
Magnus Smith

6

Mulai 2017-10.

Solusi yang memecahkan masalah saya.

Saat ini FB membuat kejutan ini.

... Pengaturan OAuth Klien aplikasi. Pastikan Klien dan Login Web OAuth ada di ...

masukkan deskripsi gambar di sini

Pengaturan untuk menyesuaikan terletak di sini https://developers.facebook.com/apps/[your_app_itentifier[/fb-login/ .

Trash slash itu penting. Mereka harus cocok dengan kode aplikasi Anda dan dalam pengaturan admin FB. Jadi ini adalah konfigurasi di suatu tempat dalam kode Anda (lihat di bawah cara mendapatkan nama domain untuk aplikasi dev):

{
    callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}

dan di sini

masukkan deskripsi gambar di sini

Untuk mendapatkan nama domain apa pun untuk aplikasi di mesin Windows lokal, edit hostfile. Nama kustom yang baik dalam rangka untuk menyingkirkan semua orang localhost:8080, 0.0.0.0:30303,127.0.0.0:8000 , sebagainya. Karena beberapa layanan pihak ketiga seperti FB terkadang gagal membiarkan Anda menggunakan127.0.0.0 nama.

Pada Windows 10 hostsfile ada di sini:

C:\Windows\System32\drivers\etc\hosts

Cadangkan file awal, buat salinan dengan nama yang berbeda (Tidak bekerja di CMD Windows asli. Saya menggunakan Git untuk Windows , ia memiliki banyak perintah Unix)

$ cp hosts hosts.bak

Tambahkan ini hosts

127.0.0.1  myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1  www.myotherapp.io # In a browser http://www.myotherapp.io:2020

Untuk menyingkirkan bagian port :3000mengatur NGINX, misalnya.


Terima kasih untuk ini, tidak tahu garis miring diperlukan!
Andy Holmes

pada 11 Mei 2018, url panggilan balik pada aplikasi dan URI redirect otomatis di facebook harus sama. dan https harus.
Yuda Prawira

Trailing slash menghemat waktuku. Terima kasih!
HyoJin KIM


6

Sebagian besar waktu terjadi dengan tidak memasukkan URL pengalihan OAuth yang valid dan tepat di bagian produk dari dasbor FB. Saya sarankan ikuti langkah-langkah saya di bawah ini

01. Periksa pengaturan dasar aplikasi apa-apa dengan gambar di bawah ini dengan Anda

masukkan deskripsi gambar di sini

02. periksa apakah Anda telah menambahkan produk

Jika tidak, Anda dapat dengan mudah menambahkan produk masuk dengan mengklik + sinus seperti yang saya tunjukkan di bawah ini.

Jika Ya baru saja masuk ke dalam pengaturan produk. masukkan deskripsi gambar di sini

03. Periksa apakah Anda telah memberikan URL pengalihan OAuth yang valid

Sederhana artinya apa yang harus setelah login. Tidak lain dari itu, panggilan Anda kembali ke URl. Anda dapat melihat di gambar bawah saya, saya telah menambahkan beberapa URL pengalihan. masukkan deskripsi gambar di sini

  1. memiliki masalah lebih lanjut Tonton video saya -> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s

Pertanyaan berusia 2 tahun, dan tautan ke situs eksternal tidak boleh menjadi konten utama jawaban.
zzxyz

6

Facebook baru-baru ini menonaktifkan tombol sakelar untuk ' Gunakan Mode Ketat untuk Mengarahkan URI ', jadi Anda perlu menambahkan URI yang tepat apa yang dipanggil ketika Anda menekan tombol masuk. Untuk kasus saya itu seperti yang ditunjukkan pada tangkapan layar. Itu memecahkan masalah untuk saya :)

masukkan deskripsi gambar di sini



5

Dalam kasus saya, hal yang harus saya lakukan hanyalah mengaktifkan Login OAuth Browser Tertanam

masukkan deskripsi gambar di sini


Saya juga menggunakan login berbasis browser, jadi masalah yang sama saya hadapi. Juga ada kotak input di bawah ini di mana saya harus meletakkan URI redirect yang tepat.
absin

4

Tidak ada yang benar-benar bekerja untuk saya, sampai saya memperbarui versi SDK yang saya gunakan. Saya mulai dengan 5.0. Bahkan 5.4.0 tidak akan berfungsi juga. Ketika saya memperbarui ke 5.6.2, ia bekerja dengan sempurna, meskipun tidak ada apa-apa di changelog yang relevan!


1
Saya sebenarnya punya masalah ini! Saya menggunakan "5.4.2" dan ditingkatkan ke "5.6.2"
John Smith

2

Opsi ini harus diaktifkan di portal:

masukkan deskripsi gambar di sini


Terima kasih. Saya memiliki masalah yang sama dan ini adalah saklar yang saya lewatkan.
timeon

Terima kasih! Ini juga berfungsi untuk saya (saya menggunakan Google Firebase. Saya juga harus mengatur "URI redirect OAuth valid" ke UA redirect OAuth yang diberikan kepada saya oleh google untuk proyek saya.)
mwang25

2

Dalam hal ini membantu orang lain, ini mulai terjadi pada saya di situs yang lebih tua ketika "Valid OAuth Redirect URIs" menjadi wajib. Situs itu masih menggunakan V4 PHP SDK dan masalahnya telah teratasi bagi saya dengan memutakhirkan ke V5 SDK.


1

Di bagian App domain, Anda menulis domain aplikasi Anda tetapi Anda juga perlu menambahkan domain login Anda, yaitu nama halaman html tempat Anda meminta pengguna untuk login. Dalam kasus saya, saya mengujinya di localhost dan rute masuknya adalah localhost / login, Jika saya hanya memasukkan http://localhost.com di bagian App domain, saya mendapatkan kesalahan ini. Tetapi setelah menambahkan http: //localhost/login.com , kesalahan diperbaiki. dan juga pengaturan Aplikasi telah berubah dalam versi SDK yang lebih baru, di mana tidak ada opsi untuk rute pengalihan OAuth. Anda harus menetapkan rute pengalihan langsung dari sisi server, setelah berhasil mendapatkan token OAuth.


1

Ini bekerja untuk saya:

Inilah hal utama yang harus dipahami: Facebook akan selalu memeriksa domain " WWW ". Jadi pastikan www.domain_anda.dev berfungsi di browser Anda terlebih dahulu.

Ada kemungkinan bahwa jika Anda memiliki beberapa host virtual di server lokal Anda, beberapa host virtual lain menimpa " www.domain_anda.dev ". Jadi tolong periksa itu. Apache akan memilih definisi domain PERTAMA (atau port, atau sesuatu dalam istilah ini - saya bukan ahli dalam hal ini, tetapi belajar dari kesalahan). Perbaikan cepat yang mudah untuk penggantian host virtual ini adalah dengan meletakkan " www.your_domain.dev definisi virtual host di bagian paling atas dari file" httpd-vhosts.conf ".

Buka " /apache/conf/https-vhosts.conf " dan letakkan ini di bagian paling atas file:

<VirtualHost *:80>
<Directory "C:/your_app_folder_path/">
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    allow from All
</Directory>
ServerName your_domain.dev
ServerAlias your_domain.dev
DocumentRoot "C:/your_app_folder_path/"
</VirtualHost>

###### FOR SSL #####
<VirtualHost *:443>
    DocumentRoot "C:/your_app_folder_path/"
    ServerName your_domain.dev
    ServerAlias www.your_domain.dev
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/your_app_folder_path/">
        Options All
        AllowOverride All
        Require all granted 
    </Directory>
</VirtualHost>

Berikutnya: Jika Anda menggunakan sistem Windows, edit file "host" di "C: \ Windows \ System32 \ drivers \ etc" dengan menambahkan dua baris:

127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev

Berikutnya: Mulai ulang server Apache Anda dan semuanya akan berfungsi sekarang.


Saya harap ini akan membantu Anda dan menghemat waktu Anda. Saya menghabiskan hampir sepanjang hari mencari-cari di web dan mencabut rambut saya dan tidak dapat menemukan sesuatu yang membantu sampai saya menemukan ini.


1

Saya memiliki masalah yang sama ..... issu dalam versi PHP SDK 5.6.2 dan perbaikannya mengedit file berikut:

facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php

ubah baris ini

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);

untuk

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);


0

Kesalahan Facebook yang sama ini terjadi pada saya di lingkungan Produksi. Alasannya adalah saya memiliki 2 aplikasi yang terdaftar di Facebook (Lokal, Produksi) tetapi saya mengubah kode aplikasi ID lokal menjadi kode sumber dan lupa untuk mematikannya untuk ID aplikasi Produksi sebelum penyebaran.

Praktik terbaik mengharuskan Anda untuk tidak memiliki ID aplikasi yang telah dikodekan ke dalam kode sumber, tetapi jika ya, jangan salah mencocokkan berbagai ID aplikasi Facebook Anda seperti yang saya keliru lakukan.


0

Menggunakan server lokal saya sendiri.

Cukup tambahkan http://localhost/my-sitesebagai URL di:

https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/

bekerja untukku.


0

Masalahnya, dan jawabannya, terus berubah saat FB memperketat prosedur login. Hari ini, saya mulai menerima pesan horor ini "Domain URL ini tidak termasuk dalam domain aplikasi. Untuk dapat memuat URL ini, tambahkan semua domain dan subdomain aplikasi Anda ke bidang App Domains di pengaturan aplikasi Anda."

Jawabannya adalah: sekarang FB menginginkan uri pengalihan penuh. Jadi bagi saya, yang dulu hanya https://www.example.com sekarang ingin https://www.example.com/auth/facebook/callback . Ini harus masuk dalam bidang "Valid OAuth redirect URIs" (pengaturan Developer / Facebook login->)



0

langkah pertama: gunakan semua https://example.in atau ssl URL sertifikat, jangan gunakan http://example.in

langkah kedua: pengaturan aplikasi faceboook-> pengaturan dasar-> tambahkan domain atau subdomain Anda

langkah ketiga: pengaturan login aplikasi faceboook-> Valid OAuth Redirect URIs-> tambahkan semua url redirect Anda setelah login

langkah keempat: pengaturan aplikasi faceboook-> pengaturan lanjutan-> Manajer Domain-> tambahkan nama domain Anda

lakukan semua langkah ini kemudian gunakan id aplikasi Anda, versi aplikasi, rahasia aplikasi untuk pengaturan


0

pada ekstensi Login Sosial Magento 2, Anda harus menyalin URI redirect OAuth valid dari panel dan menambahkan tautan ke bidang URI Redirect OAuth Valid di halaman Pengaturan OAuth Klien di developers.facebook.com



-1

Sebagian besar jawabannya ada di sekitar menambahkan URL ke domain aplikasi, tetapi ketika bekerja di perusahaan Anda tidak memiliki akses ini. Untuk itu, Anda dapat memotong ini dengan hanya membuat host virtual dan membuat entri host.


tambahkan ini di file host (/ etc / hosts) 127.0.0.1 www.your_domain.com

membuat virtual host. Saya telah menggunakan ini untuk virtual host apache

ServerAdmin webmaster @ localhost ServerName www.your_domain.com

    ProxyPass / http://localhost:5006/
    RewriteMap  lc int:tolower
    LogLevel debug

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.