首先我要说的是,我已经搜索了这个问题的答案了很长一段时间......
我尝试设置Facebook OAuth以使用我的计算机上本地开发的应用程序。使用Facebook授权,一切都很完美UNTIL我从使用localhost
转移到另一个域名(仍然是我的机器本地。)现在我收到以下错误。
无法加载网址:此网址的域名未包含在应用内容中 域。要加载此网址,请添加所有域和子域 应用程序设置中的应用程序域字段。
我的主机文件包含127.0.0.1 photovote.dev
(效果很好)
我的应用中的重定向(使用社交网站)为http://photovote.dev/auth/facebook/callback
在我的Facebook App设置中......
photovote.dev
http://photovote.dev/
http://photovote.dev/auth/facebook/callback
错误消息时的URL是..
我不知道问题是什么......
答案 0 :(得分:192)
万一有人碰到这个并正在寻找这些设置(就像我一样)
你必须
其他信息:确保将http://localhost:3000
之类的回拨网址添加到Facebook登录设置页面上的Valid OAuth redirect URIs
字段
答案 1 :(得分:67)
如果您在Facebook中创建应用程序时输入了错误的详细信息,通常会发生这种情况。或者您是否更改了现有应用程序的URL?
您能否在此页面中重新检查您的APP设置?
https://developers.facebook.com/apps
选择正确的应用并单击编辑按钮;
检查网址&路径已正确输入,并指向您已安装Ultimate Facebook插件的网站。
答案 2 :(得分:50)
我遇到了同样的问题。我通过将我的OAuth重定向URI作为参数添加到getAccessToken函数调用来解决它:
$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")
如果没有任何参数发送到该函数,SDK会自行生成重定向URI,这应该有效,但在我的情况下它并没有。
希望这有助于某人。
答案 3 :(得分:32)
确保您的应用是公开的。 点击+添加产品 现在转到products => Facebook登入 现在执行以下操作:
有效的OAuth重定向URI:example.com /
取消对回拨网址的授权:https://example.com/facebookapp
答案 4 :(得分:18)
基本上:
1)启用" 嵌入式浏览器OAuth登录"
2)禁用" 使用严格模式重定向URI "并输入重定向 URI就像我做的那样。
3)保留所有其他选项。
4)保存更改。
5)享受:)
答案 5 :(得分:7)
我遇到了同样的问题,它来自错误的client_id / Facebook App ID。
您是否将Facebook应用程序切换为“公开”或“在线”?当您这样做时,Facebook会创建一个带有新App ID的新应用程序。
您可以将网址中的“client_id”参数值与Facebook信息中心中的值进行比较。
答案 6 :(得分:6)
我修复它的方式:我转到了有效OAuth重定向URI文本框并设置了完全网址,不仅仅是域:
之前:https://my-website.com
之后:https://my-website.com/facebookoauth/facebooklogin
(在您的情况下,网址可能会有所不同,请在浏览器的地址栏中查看)。
这是由设置使用重定向URI的严格模式引起的,该模式已锁定在“是”位置。
答案 7 :(得分:5)
点击here Code Project! 其代码项目示例。它对我有用
答案 8 :(得分:5)
大部分时间都没有在FB信息中心的产品部分插入正确的有效的OAuth重定向网址。我建议按照下面的步骤进行操作
01. 检查应用程序的基本设置是否可以随身携带下面的图片
02. 检查您是否添加了产品
如果没有,您可以通过点击下面显示的+正弦轻松添加登录产品。
03. 检查您是否提供了有效的OAuth重定向网址
它简单的意思是登录后应该是什么。它不是你的回调URl.You可以在我的下面的图片中看到我添加了几个重定向URL。
答案 9 :(得分:4)
我遇到了同样的问题,
我刚刚在我的应用设置http://localhost/Facebook%20Login%20Test.html中将我的本地地址https://developers.facebook.com/apps的链接添加到<script src="Scripts/jquery-1.10.2.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui1.11.4.js" type="text/javascript"></script>
<script src="Scripts/Watermark.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
var locations = ["Anywhere", "Gurgaon", "Delhi", "Noida","Chennai"];
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
$("#txtLocation")
// don't navigate away from the field on tab when selecting an item
.WaterMark(
{
})
.bind("keydown", function (event) {
if (event.keyCode === $.ui.keyCode.TAB &&
$(this).autocomplete("instance").menu.active) {
event.preventDefault();
}
})
.autocomplete({
delay: 0,
minLength: 1,
source: function (request, response) {
// delegate back to autocomplete, but extract the last
response($.ui.autocomplete.filter(
locations, extractLast(request.term)));
},
focus: function () {
// prevent value inserted on focus
return false;
},
select: function (event, ui) {
var terms = split(this.value);
// remove the current input
terms.pop();
// add the selected item
terms.push(ui.item.value);
// add placeholder to get the comma-and-space at the end
terms.push("");
this.value = terms.join(", ");
return false;
}
});
});
});
</script>
<asp:TextBox ID="txtLocation" runat="server" CssClass="frmhometxtLocation" placeholder="Locations" ToolTip="Locations"
onblur="Javascript:FormatLocation();"></asp:TextBox>
。
现在它工作正常:)我希望这很有用;)
答案 10 :(得分:4)
截至2017年10月。
解决了我的问题的解决方案。
目前,FB给出了这个惊喜。
... app的客户端OAuth设置。确保客户端和Web OAuth登录 ...
要调整的设置位于https://developers.facebook.com/apps/[your_app_itentifier]/fb-login/。
尾随斜线很重要。它们必须与您的应用代码和FB管理设置匹配。所以这是代码中的某个配置(请参阅下面如何获取开发应用程序的任何域名):
{
callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}
在这里
要在本地Windows计算机上获取应用程序的任何域名,请编辑host
文件。自定义名称很好,以便摆脱所有localhost:8080
,0.0.0.0:30303
,127.0.0.0:8000
等等。因为某些第三方服务(如FB)有时无法让您使用127.0.0.0
名称。
在Windows 10 hosts
文件位于:
C:\Windows\System32\drivers\etc\hosts
备份初始文件,创建一个具有不同名称的副本(不能在本机Windows CMD中工作。我使用Git for Windows,它有许多Unix命令)
$ cp hosts hosts.bak
在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
例如,为了摆脱端口部分:3000
设置NGINX。
答案 11 :(得分:4)
无法加载网址:此网址的域未包含在应用的 域。为了能够加载此URL,请添加所有域和子域 进入应用程序设置中的“应用程序域”字段。
我今天遇到了这个问题,至少可以说,我发现Facebook文档和SDK不尊重其他开发人员。
除了在两个不同的位置拥有“应用程序域”而没有太多信息(如果添加“网络”平台,则为3)之外,您还需要转到应用程序产品/ facebook登录名/设置在有效的OAuth重定向URI
下添加重定向URL该错误表明没有关于oauth设置的信息。
答案 12 :(得分:3)
在我更新我使用的SDK版本之前,没有什么对我有用。我从5.0开始。甚至5.4.0都不会起作用。当我更新到5.6.2时,尽管更改日志中没有任何相关信息,但它仍能完美运行!
答案 13 :(得分:2)
答案 14 :(得分:2)
答案 15 :(得分:2)
如果这对其他人有帮助,那么当#34;有效的OAuth重定向URI&#34;时,我就会在旧网站上发生这种情况。成为强制性的该网站仍在使用V4 PHP SDK,通过升级到V5 SDK解决了我的问题。
答案 16 :(得分:2)
答案 17 :(得分:1)
在应用程序域部分中,您正在编写应用程序域,但您还需要添加登录域,即要求用户登录的html页面的名称。在我的情况下,我在localhost上测试它,登录路由是localhost / login,如果我只将http://localhost.com放在App域部分,我会收到此错误。但是在添加http://localhost/login.com之后,错误已得到修复。 此外,在较新版本的SDK中,应用程序设置已更改,其中没有OAuth重定向路由选项。在成功获取OAuth令牌后,您将直接从服务器端分配重定向路由。
答案 18 :(得分:1)
我遇到了同样的问题..... issu在PHP SDK 5.6.2版本中,并且此修复程序正在编辑以下文件:
facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php
更改此行
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);
至
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);
答案 19 :(得分:1)
这对我有用:
以下是需要了解的主要内容:Facebook将始终检查“ WWW ”域名。因此,请确保 www.your_domain.dev 首先在您的浏览器上运行。
如果本地服务器上有多个虚拟主机,则其他虚拟主机可能会覆盖“ www.your_domain.dev ”。所以请检查一下。 Apache将选择域的第一个定义(或端口,或者这些术语中的某些东西 - 我不是这方面的专家,但是通过错误来学习)。 对此虚拟主机覆盖的简单快速修复是将“ www.your_domain.dev 虚拟主机定义放在文件的最顶层”httpd-vhosts.conf“。
转到“ /apache/conf/https-vhosts.conf ”并将其放在文件的最顶部:
<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>
下一步:如果您使用的是Windows系统,请在“C:\ Windows \ System32 \ drivers \ etc”中添加两行来编辑“hosts”文件:
127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev
下一步:重启Apache服务器,现在一切正常。
我希望这能帮到你,节省你的时间。 我浪费了差不多一整天的时间在网上搜索,并且在我找到这个之前找不到任何有用的东西。
答案 20 :(得分:0)
在Magento 2社交登录扩展中,您必须从面板中复制有效OAuth重定向URI,并在developer.facebook.com上“客户端OAuth设置”页面的“有效OAuth重定向URI”字段中添加链接。
答案 21 :(得分:0)
如果您的游戏没有服务器/站点(例如,如果您像我这样为Gameroom开发),请在“有效的OAuth重定向URI”中添加“ https://apps.facebook.com/xxxxxxxxxxxxxxxxx”(将您的应用ID替换为“ xxxxxxxxxxxx”)。 / p>
答案 22 :(得分:0)
就我而言,我解决了这个问题,方法是添加完整的 URL 而不仅仅是 facebook 要求的域。我希望他们将其重命名以进行更多说明。
所以有效的 OAuth 重定向 URI 应该是这样的:
之前:https://www.mobile-battles.com
之后:https://www.mobile-battles.com/register
答案 23 :(得分:0)
第一步: 使用所有https://example.in或ssl证书网址, 不要使用http://example.in
第二步: faceboook应用程序设置 - &gt;基本设置 - &gt;添加您的域或子域 第三步: faceboook应用程序登录设置 - &gt;有效的OAuth重定向URI-&gt;登录后添加所有重定向网址 第四步: faceboook应用程序设置 - &gt;高级设置 - &gt;域管理器 - &gt;添加您的域名执行所有这一步,然后使用您的应用程序ID,应用程序版本,app secret进行设置
答案 24 :(得分:0)
Facebook登录 - &gt;设置 - &gt;有效的OAuth重定向URI - &gt;插入重定向网址的域名,请记住您应该添加&#39; https&#39;或http。 例如:如果你的重定向网址是 Basic Authentication Using Message Handlers In Web API ,你只需要输入 https://xxx.xxx.com/path/callback.do ,这对我来说没问题。
答案 25 :(得分:0)
当FB收紧登录程序时,问题和答案会不断变化。今天,我开始收到这条恐怖消息“此网址的域名未包含在应用的域中。要加载此网址,请将应用的所有域和子域添加到应用设置中的应用域名字段中。”
答案是:现在FB想要完全重定向uri。所以对于我来说,过去仅仅是https://www.example.com它现在需要https://www.example.com/auth/facebook/callback。这必须进入“有效OAuth重定向URI”字段(开发人员/ Facebook登录 - >设置)
答案 26 :(得分:0)
使用我自己的本地服务器。
只需将public class Functions
{
public static void GenerateSample(
[QueueTrigger("audiosamplemaker")] AudioSampleEntityModel sampleInQueue,
[Table("Samples", "{PartitionKey}", "{RowKey}")] AudioSampleEntityModel sampleInTable,
[Blob("audiocollection/audio/{queueTrigger}")] CloudBlockBlob inputBlob,
[Blob("audiocollection/samples/{queueTrigger}")] CloudBlockBlob outputBlob, TextWriter logger,
[Table("Samples")] CloudTable tableBinding, TextWriter kek)
{
//use log.WriteLine() rather than Console.WriteLine() for trace output
logger.WriteLine("GenerateSample() started...");
logger.WriteLine("Input blob is: " + sampleInQueue);
// Open streams to blobs for reading and writing as appropriate.
// Pass references to application specific methods
using (Stream input = inputBlob.OpenRead())
using (Stream output = outputBlob.OpenWrite())
{
createSample(input, output, 20);
outputBlob.Properties.ContentType = "audio/mp3";
outputBlob.Metadata["Title"] = inputBlob.Metadata["Title"];
}
logger.WriteLine("GenerateSample() completed...");
}
private static void createSample(Stream input, Stream output, int duration)
{
using (var reader = new Mp3FileReader(input, wave => new NLayer.NAudioSupport.Mp3FrameDecompressor(wave)))
{
Mp3Frame frame;
frame = reader.ReadNextFrame();
int frameTimeLength = (int)(frame.SampleCount / (double)frame.SampleRate * 1000.0);
int framesRequired = (int)(duration / (double)frameTimeLength * 1000.0);
int frameNumber = 0;
while ((frame = reader.ReadNextFrame()) != null)
{
frameNumber++;
if (frameNumber <= framesRequired)
{
output.Write(frame.RawData, 0, frame.RawData.Length);
}
else break;
}
}
}
}
作为网址添加到:
http://localhost/my-site
为我工作。
答案 27 :(得分:0)
在生产环境中,我发生了同样的Facebook错误。原因是我在Facebook(本地,制作)注册了2个应用程序,但我将本地应用程序ID硬编码到源代码中,并且在部署之前忘记将其切换为生产应用程序ID。
最佳做法决定您不应将应用程序ID硬编码到源代码中,但如果您这样做,请不要错误地将您的各种Facebook应用程序ID与我错误地匹配。
答案 28 :(得分:-1)
大多数答案都是将网址添加到应用的域中,但在公司工作时,您无法获得这些访问权限。对于这些,您可以通过简单地制作虚拟网络来绕过这一点。主持并进入主持人。
在主机文件(/ etc / hosts)中添加 127.0.0.1 www.your_domain.com
创建虚拟主机。我已将此用于apache虚拟主机
ServerAdmin webmaster @ localhost ServerName www.your_domain.com
ProxyPass / http://localhost:5006/
RewriteMap lc int:tolower
LogLevel debug