Шаг 1: Скачать & настройки папки
Я постараюсь сделать это как коротким и сладким, как это возможно:
Download the Facebook SDK for PHP from GitHub
https://github.com/facebook/facebook-php-sdk-v4/archive/master.zip
Create a folder in your application/libraries folder called facebook
Move the Facebook folder in src from the Facebook SDK to the facebook folder you just created.
Шаг 2: Создание & определить переменные конфигурации
Вам также потребуется настроить некоторые переменные конфигурации. Либо в приложении/Config/config.php или собственный конфигурационный файл - который я предлагаю вам сделать - создать следующие переменные:
<?php
$config['facebook']['api_id'] = 'YOUR APP ID';
$config['facebook']['app_secret'] = 'YOUR APP SECRET';
$config['facebook']['redirect_url'] = 'http://www.yourwebsite.com/login';
$config['facebook']['permissions'] = array(
'email',
'user_location',
'user_birthday'
);
вид сырого 1492-1.php размещенных с ❤ на GitHub
Теперь, когда у вас есть файлы и настройка конфигурации, вам необходимо создать библиотеку Facebook для CodeIgniter. Вы будете использовать это, чтобы преодолеть захват между вашим CI-приложением и SDK для Facebook. Шаг 3: Создайте библиотеку CodeIgniter
Создайте файл в папке application/libraries/facebook под названием Facebook.php. Вот где все волшебство произойдет. В зависимости от того, как вы его используете, вам может потребоваться автозагрузка библиотеки или просто загрузить ее в контроллер, который вы будете использовать для ... до вас.
Это отнюдь не является полной библиотекой, но показывает, как использовать API для создания методов, позволяющих вам получить доступ к ним в контроллерах.
application/libraries/facebook/facebook.php:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
// Autoload the required files
require_once(APPPATH . 'libraries/facebook/vendor/autoload.php');
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
class Facebook {
var $ci;
var $helper;
var $session;
var $permissions;
public function __construct() {
$this->ci =& get_instance();
$this->permissions = $this->ci->config->item('permissions', 'facebook');
// Initialize the SDK
FacebookSession::setDefaultApplication($this->ci->config->item('api_id', 'facebook'), $this->ci->config->item('app_secret', 'facebook'));
// Create the login helper and replace REDIRECT_URI with your URL
// Use the same domain you set for the apps 'App Domains'
$this->helper = new FacebookRedirectLoginHelper($this->ci->config->item('redirect_url', 'facebook'));
if ($this->ci->session->userdata('fb_token')) {
$this->session = new FacebookSession($this->ci->session->userdata('fb_token'));
// Validate the access_token to make sure it's still valid
try {
if (! $this->session->validate()) {
$this->session = null;
}
} catch (Exception $e) {
// Catch any exceptions
$this->session = null;
}
} else {
// No session exists
try {
$this->session = $this->helper->getSessionFromRedirect();
} catch(FacebookRequestException $ex) {
// When Facebook returns an error
} catch(Exception $ex) {
// When validation fails or other local issues
}
}
if ($this->session) {
$this->ci->session->set_userdata('fb_token', $this->session->getToken());
$this->session = new FacebookSession($this->session->getToken());
}
}
/**
* Returns the login URL.
*/
public function login_url() {
return $this->helper->getLoginUrl($this->permissions);
}
/**
* Returns the current user's info as an array.
*/
public function get_user() {
if ($this->session) {
/**
* Retrieve User’s Profile Information
*/
// Graph API to request user data
$request = (new FacebookRequest($this->session, 'GET', '/me'))->execute();
// Get response as an array
$user = $request->getGraphObject()->asArray();
return $user;
}
return false;
}
}
Библиотека выше даст вам доступ к API Facebook SDK Graph. Он создает и сохраняет токен Facebook в сеансе, поэтому вы можете получить доступ к нему позже для вызовов API. Пример
После того, как вы загрузили библиотеку Facebook, созданную выше, вы будете иметь доступ к нему в пределах контроллеров со следующим:
$this->facebook->METHOD_NAME();
Например, если вы хотите получить логин URL (где предоставляется доступ для пользователей):
$login_url = $this->facebook->get_login_url();
$fbuserid = $this->facebook->fb_userid();
$fb_user_sel_fields = "";
$user_profile = $this->facebook->fb_user_profile($fbuserid, $fb_user_sel_fields);
print_r ($ user_profile);
Только один способ узнать это! – iswinky
@ iswinky Это? Как его найти? – Akshay
И для того, кто проголосовал за этот вопрос, я не получил информацию об этом, поэтому я спросил его здесь. Это не преступление, если у вас меньше знаний о чем-то. – Akshay