我的PHP代码中的Facebook登录集成出现错误
当我点击Facebook登录按钮时,我发现了这个错误 应用程序配置不允许给定URL。示例:一或 应用程序的设置不允许使用更多的给定URL。它必须 匹配网站URL或画布URL,或者域必须是子域 应用程序的一个域的 在我的应用程序设置中,我写了以下内容 使用Facebook登录的网站我的PHP代码中的Facebook登录集成出现错误,php,facebook,facebook-graph-api,facebook-javascript-sdk,Php,Facebook,Facebook Graph Api,Facebook Javascript Sdk,当我点击Facebook登录按钮时,我发现了这个错误 应用程序配置不允许给定URL。示例:一或 应用程序的设置不允许使用更多的给定URL。它必须 匹配网站URL或画布URL,或者域必须是子域 应用程序的一个域的 在我的应用程序设置中,我写了以下内容 使用Facebook登录的网站 Site URL: http://192.168.1.234/photogallery/login.php 那么站点url有什么问题 提前感谢…: public function getLoginUrl($param
Site URL: http://192.168.1.234/photogallery/login.php
那么站点url有什么问题
提前感谢…:
public function getLoginUrl($params=array()) {
$this->establishCSRFTokenState();
$currentUrl = $this->getCurrentUrl();
// if 'scope' is passed as an array, convert to comma separated list
$scopeParams = isset($params['scope']) ? $params['scope'] : null;
if ($scopeParams && is_array($scopeParams)) {
$params['scope'] = implode(',', $scopeParams);
}
return $this->getUrl(
'www',
'dialog/oauth',
array_merge(array(
'client_id' => $this->getAppId(),
'redirect_uri' => $currentUrl, // possibly overwritten
'state' => $this->state),
$params));
}
protected function getCurrentUrl() {
if (isset($_SERVER['HTTPS']) &&
($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
$protocol = 'https://';
}
else {
$protocol = 'http://';
}
$currentUrl = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$parts = parse_url($currentUrl);
$query = '';
if (!empty($parts['query'])) {
// drop known fb params
$params = explode('&', $parts['query']);
$retained_params = array();
foreach ($params as $param) {
if ($this->shouldRetainParam($param)) {
$retained_params[] = $param;
}
}
if (!empty($retained_params)) {
$query = '?'.implode($retained_params, '&');
}
}
// use port if non default
$port =
isset($parts['port']) &&
(($protocol === 'http://' && $parts['port'] !== 80) ||
($protocol === 'https://' && $parts['port'] !== 443))
? ':' . $parts['port'] : '';
// rebuild
return $protocol . $parts['host'] . $port . $parts['path'] . $query;
}
你是说画布url是http://192.168.1.234/photogallery/login.php ?如果是,则将其更改为http://192.168.1.234/在您的代码中。在生成令牌\u url时,能否确保重定向\u uri设置为http://192.168.1.234/photogallery/login.php? 例如:
$token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' . $app_id
. '&redirect_uri=' . urlencode('http://192.168.1.234/photogallery/login.php')
. '&client_secret=' . $app_secret
. '&code=' . $_SESSION['fb_'.$app_id.'_code'];
当应用程序设置页面中的基本设置配置错误时,会发生此错误 您正在使用本地主机作为站点URL。也许facebook无法访问该位置。请将文件上载到服务器,如 确保以下各项输入正确。 我假设您使用Facebook登录您的网站,并且该应用程序未配置为Facebook、Android或iOS上的应用程序。 在带有Facebook登录选项的网站SiteURL中,您应该输入网站的域地址
这应该可以解决您的问题。如果IP是网络上的本地IP,您需要外部IP。那么在外部IP中写什么@什么叫画布url@vishnu vishwa?在您的facebook应用程序设置中,将有字段输入您的网站url,请在那里输入。只有这192.168.1.234?这是我的$token_url 192.168.1.234/photogallery/login.php@stephane bruckert您将facebook登录集成到了您的网站中。所以,您很可能已经生成了一个令牌url。不是吗?在我的代码中$currentUrl=$protocol$_服务器['HTTP_HOST']$_服务器['REQUEST_URI'];
$token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' . $app_id
. '&redirect_uri=' . urlencode('http://192.168.1.234/photogallery/login.php')
. '&client_secret=' . $app_secret
. '&code=' . $_SESSION['fb_'.$app_id.'_code'];