gpt4 book ai didi

php - 在本地主机上设置 Facebook 登录

转载 作者:可可西里 更新时间:2023-10-31 23:32:30 25 4
gpt4 key购买 nike

我一直按照此处概述的步骤创建 Facebook 应用程序登录: http://developers.facebook.com/docs/howtos/login/server-side-login/

现在正在进行第 3 步。我在本地主机上进行设置以进行开发,然后我将使用不同的 App ID 发布到 Azure 网站。不过,我想让它首先在本地主机上运行。 (我还没有在非本地主机域上尝试过。)

在我的 Facebook 应用程序配置页面上,我设置了几个相关字段:站点 URL:http://localhost : 8052/(添加空格以允许提交到 Stack Overflow)应用域:localhost

如果没有 Facebook 代码集,main.php 重定向到登录页面。这很好用。

<head>
<?php
if(!isset($_SESSION['code'])) {
echo ('<meta http-equiv="REFRESH" content="0;url=/login.php" />');
}
?>
</head>

login.php 使用从他们的示例中复制的代码重定向到 Facebook 的登录页面。

<?php

include '/lib/url.php';

$app_id = "XXXXX";
$app_secret = "XXXXX";
$my_url = CreateUrlForPage('welcome.php');

session_start();

$code = '';
if(!isset($_REQUEST["code"])) {
$_SESSION['state'] = md5(uniqid(rand(), TRUE)); // CSRF protection
$dialog_url = "https://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
. $_SESSION['state'];

echo $my_url.'<br/>';
echo $dialog_url.'<br/>';
echo("<script> top.location.href='" . $dialog_url . "'</script>");
}
?>

很明显,我在上面混淆了我的 App ID。

由我的“CreateUrlForPage”函数生成的 URL 看起来和 facebook 登录 URL 一样:

http://localhost:8052/welcome.php
https://www.facebook.com/dialog/oauth?client_id=XXXX&redirect_uri=http%3A%2F%2Flocalhost%3A8052%2Fwelcome.php&state=XXXX

(同样,这里有些混淆。实际值看起来没问题。第一个是整数,第二个是长十六进制字符串。)

当我导航到 http://localhost : 8052/login.php 时,页面重定向到 Facebook 并给出一个完全无用的错误:“发生错误。请稍后再试。”

我查看了 Stack Overflow 上的其他几篇文章,但它们并没有解决我的问题。

我遇到的错误看起来就像这里描述的那样: Facebook application login error on localhost 提供的建议是设置域和站点 URL,我已经这样做了。

这个问题还有一个链接:Running Facebook application on localhost同样,他们建议网站 URL。他们还谈论 app-canvas,这不是我正在使用的东西,我看不出它与登录有什么关系。

值得一提的是,在我设置网站 URL 和域之前,我遇到了一个不同的错误 - 一个告诉我需要设置网站 URL 的错误。

最佳答案

这段代码对我有用。仔细检查你的 facebook 应用程序 ID,我的网站 url 设置为 http://localhost:8052/真的不需要设置域名登录谢谢

http://gamma.owlweb.com.ua/index.php/?route=account/register/fb

<?php

$app_id = "xxx"; $app_secret = "xxx";
$my_url ="http://localhost:3080/abc.php";

session_start();

$code = '';

if(!isset($_REQUEST["code"])) {
$_SESSION['state'] = md5(uniqid(rand(), TRUE)); // CSRF protection
$dialog_url =
"https://www.facebook.com/dialog/oauth?client_id=".$app_id
."&redirect_uri=".urlencode($my_url)
."&state=".$_SESSION['state'];

echo $my_url.'<br/>';
echo $dialog_url.'<br/>';
echo("<script> top.location.href='" . $dialog_url . "'</script>");
}
?>

关于php - 在本地主机上设置 Facebook 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14667180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com