Как настроить Facebook SDK с CodeIgniter, чтобы сделать вкладку страницы поклонника Facebook?

Я пытаюсь следующее:

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Welcome extends CI_Controller {

    function __construct() {
        parent::__construct();

        $this->load->library('facebook', $this->config->item('fb_config'));
    }

    public function index() {
        $user_id = $this->facebook->getUser();
        $data['user_id'] = $user_id;

        if ($user_id) {

            // We have a user ID, so probably a logged in user.
            // If not, we'll get an exception, which we handle below.
            try {

                $user_profile = $this->facebook->api('/me', 'GET');
                echo "Name: " . $user_profile['name'];
            } catch (FacebookApiException $e) {
                // If the user is logged out, you can have a 
                // user ID even though the access token is invalid.
                // In this case, we'll get an exception, so we'll
                // just ask the user to login again here.
                $login_url = $this->facebook->getLoginUrl();
                echo 'Please <a href="' . $login_url . '">login.</a>';
                error_log($e->getType());
                error_log($e->getMessage());
            }
        } else {

            // No user, print a link for the user to login
            $login_url = $this->facebook->getLoginUrl();
            echo 'Please <a href="' . $login_url . '">login.</a>';
        }
        die;
    }

}

но я получаю эту ошибку:

Invalid or no certificate authority found, using bundled information
OAuthException
Error validating access token: The user has not authorized application XXXXXXXXX.

Что я могу сделать, чтобы решить это? разве это не правильный способ попросить пользователя получить доступ к его профилю? и как добавить какую-то область, как вы делаете в JavaScript

{scope: 'email, user_birthday'}

1 ответ

Решение

Обнаружил, что проблема была в массиве $this->config->item('fb_config'), это должно быть так:

$config['fb_config'] = array(
    'appId' => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
    'fileUpload' => false, // optional
    'allowSignedRequest' => false, // optional, but should be set to false for non-canvas apps
);
Другие вопросы по тегам