CodeIgniter и Nginx: Изграждане на Facebook приложение

Изчерпателно ръководство за настройка на базирано на CodeIgniter Facebook приложение с използване на Nginx, включително конфигурация на сървъра, корекции на кода и съвети за отстраняване на проблеми.

Търсите ли да изградите Facebook приложение с помощта на CodeIgniter и Nginx? На правилното място сте! Този урок ще ви преведе през процеса, като подчертава ключовите стъпки за конфигурация и потенциалните капани. Като ентусиаст на отворения код и независим разработчик, съставих това ръководство, за да ви помогна да се ориентирате в сложностите на интегрирането на тези технологии.

Конфигурация на Nginx: Основата

Нека започнем с конфигурацията на Nginx сървъра. Това е от решаващо значение за правилното насочване на заявките:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
server {
    listen 80;
    server_name blah.com;
    location ~ /index.php/ {
        root           /home/production/blah;
        index  index.html index.htm index.php;
        include        conf/fcgi.conf;
        fastcgi_param  SCRIPT_FILENAME /home/production/fb_apps/quickdate/index.php;
        fastcgi_pass   127.0.0.1:9000;
    }
    access_log      /usr/local/nginx/logs/blah.access_log;
    error_log       /usr/local/nginx/logs/blah.error_log;
}

Ключовият момент тук е редът fastcgi_param. Той гарантира, че PHP скриптовете се обработват правилно, което е от съществено значение за нашето Facebook приложение.

CodeIgniter: Персонализиране за интеграция с Facebook

Сега нека се потопим в настройката на CodeIgniter. Създайте нов файл в [app]/system/application/libraries/FB_controller.php:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
class FB_Controller extends Controller {
    function FB_Controller() {
        parent::Controller();
        $this->load->library('facebook');
        $this->facebook = new Facebook($this->API_KEY, $secret);
        $this->uid = $this->facebook->require_login();
    }
}
?>

Този персонализиран контролер ще се справя с удостоверяването на Facebook и взаимодействията с API.

Конфигуриране на CodeIgniter

Направете тези критични промени в [app]/system/application/config/config.php:

1
2
3
$config['enable_query_strings'] = TRUE;
$config['subclass_prefix'] = 'FB_';
$config['uri_protocol'] = "REQUEST_URI";

Тези настройки осигуряват правилно маршрутизиране и интеграция с Facebook в рамките на CodeIgniter.

Събиране на всичко заедно: Контролерът Welcome

Ето пример как да модифицирате вашия контролер welcome, за да работи с Facebook:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
class Welcome extends FB_Controller {
    function Welcome() {
        parent::FB_Controller();
        try {
            if (!$this->facebook->api_client->Users_isAppUser()) {
                $this->facebook->redirect($this->facebook->get_add_url());
                return;
            }
        }
        catch (Exception $x) {
            $this->facebook->expire_session();
            $facebook->redirect($this->facebook->get_login_url());
        }
    }
    
    function index() {
        // Вашата основна логика тук
    }
}
?>

Тази настройка се справя с удостоверяването на потребителите и пренасочва потребителите, които не са от приложението, към съответните Facebook страници.

Отстраняване на проблеми и поддръжка

Ако срещнете някакви проблеми при настройката на вашето Facebook приложение с CodeIgniter и Nginx, не се колебайте да се свържете. Като застъпник на отворения код, аз съм тук, за да помогна! Свържете се с мен на [email protected] за персонализирана помощ.

Заключение

Изграждането на Facebook приложение с CodeIgniter и Nginx може да изглежда обезкуражаващо в началото, но с това ръководство вие сте добре подготвени да се справите с предизвикателството. Не забравяйте, че ключът се крие в правилната конфигурация на сървъра, персонализираните библиотеки на CodeIgniter и внимателната интеграция с API на Facebook.

Опитвали ли сте да изграждате Facebook приложения с различни фреймуърци? Бих искал да чуя за вашия опит и всички иновативни подходи, които сте открили. Нека продължим да разширяваме границите на уеб разработката заедно!

Writing about the internet