The redirect_uri URL must be absolute Facebook login PHP SDK(redirect_uri URL 必须是绝对 Facebook 登录 PHP SDK)
问题描述
我正在尝试在 codeigniter 的项目中实现 facebook 登录.
I am trying to implement the facebook login in my project in codeigniter.
我正在使用 php sdk.
I am using the php sdk.
当我点击登录按钮时,它给了我一个错误:
When I click on the login button, it gives me an error:
The redirect_uri URL must be absolute
有什么问题,我该如何解决?
What is the problem and how do I fix it?
这里是view/home.php
的内容:
<?php if(!$fb_data['me']): ?>
Please login with your FB account:
<a href="<?php echo $fb_data['loginUrl']; ?>">login</a>
<?php else: ?>
<img src="https://graph.facebook.com/<?php
echo $fb_data['uid']; ?>/picture" alt="" class="pic" />
<p>Hi <?php echo $fb_data['me']['name']; ?>,<br />
<a href="<?php
echo site_url('welcome/topsecret'); ?>">
You can access the top secret page</a> or
<a href="<?php echo $fb_data['logoutUrl']; ?>">logout</a> </p>
<?php endif; ?>
这里的内容是:controler/home.php
class Home extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('Facebook_model');
}
function index(){
$this->load->model("Concertos_model");
$data['banners'] = $this->Concertos_model->get_banner_data();
$fb_data = $this->session->userdata('fb_data'); // This array contains all the user FB information
$data = array(
'fb_data' => $fb_data,
);
$this->load->view('home', $data);
}
function topsecret()
{
$fb_data = $this->session->userdata('fb_data');
if((!$fb_data['uid']) or (!$fb_data['me']))
{
redirect('home');
}
else
{
$data = array(
'fb_data' => $fb_data,
);
$this->load->view('home', $data);
}
}
}
内容:model/Facebook_model.php
:
<?php
class Facebook_model extends CI_Model {
public function __construct()
{
parent::__construct();
$config = array(
'appId' => 'xxxxxxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxx',
'fileUpload' => true, // Indicates if the CURL based @ syntax for file uploads is enabled.
);
$this->load->library('Facebook', $config);
$user = $this->facebook->getUser();
// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.
$profile = null;
if($user)
{
try {
// Proceed knowing you have a logged in user who's authenticated.
$profile = $this->facebook->api('/me?fields=id,name,link,email');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
$fb_data = array(
'me' => $profile,
'uid' => $user,
'loginUrl' => $this->facebook->getLoginUrl(
array(
'scope' => 'email,user_birthday,publish_stream', // app permissions
'redirect_uri' => 'home' // URL where you want to redirect your users after a successful login
)
),
'logoutUrl' => $this->facebook->getLogoutUrl(),
);
$this->session->set_userdata('fb_data', $fb_data);
}
}
为什么 facebook 会返回该消息,我该如何解决?
Why does facebook return that message and how do I fix it?
推荐答案
'redirect_uri' => 'home' // URL where you want to redirect your users after a successful login
您必须提供完整的 URL(从 http://
开始),而不是 CI 页面别名.改用 site_url('home')
You have to provide full URL (starting from http://
), not CI page alias. Use site_url('home')
instead
这篇关于redirect_uri URL 必须是绝对 Facebook 登录 PHP SDK的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:redirect_uri URL 必须是绝对 Facebook 登录 PHP SDK
基础教程推荐
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01