Facebook Connect Codeigniter - PullRequest
       1

Facebook Connect Codeigniter

1 голос
/ 18 марта 2012

Я пытаюсь войти на Facebook в localhost и столкнулся с некоторыми проблемами.

Прежде всего, я использую Codeigniter. Для входа в Facebook, в библиотеке я извлек SDK Facebook, который включает в себя Facebook, base_facebook и fb_ca_chain_bundle.crt.

Затем я решил создать Facebook_Model.php в каталоге моделей, который:

<?php
class Facebook_model extends CI_Model {

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

        $config = array(
                        'appId'  => 'XXXXXXXXXXXXXXXXXXXX',
                        'secret' => 'XXXXXXXXXXXXXXXXXXXX',
                        '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' => 'localhost:81/videoyorum/' // URL where you want to redirect your users after a successful login
                            )
                        ),
                        'logoutUrl' => $this->facebook->getLogoutUrl(),
                    );

        $this->session->set_userdata('fb_data', $fb_data);
    }

}

Затем я создал контроллер для использования моей модели:

<?php

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

class Welcome extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('Facebook_Model');
        $this->load->helper('url');
    }

    public function index() {
        $this->load->view('welcome_message');
        $fb_data = $this->session->userdata('fb_data');

        print_r($fb_data);


            $data = array(
                'fb_data' => $fb_data,
            );



        $this->load->view('welcome_message', $data);
    }

}

и, конечно, вид:

<body>
<div>
  <?php if(!$fb_data['me']): ?>
  Please login with your FB account: <a href="<?php echo $fb_data['loginUrl']; ?>">login</a>
  <!-- Or you can use XFBML -->
  <div class="fb-login-button" data-show-faces="false" data-width="100" data-max-rows="1" data-scope="email,user_birthday,publish_stream"></div>
  <?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('topsecret'); ?>">You can access the top secret page</a> or <a href="<?php echo $fb_data['logoutUrl']; ?>">logout</a> </p>
  <?php endif; ?>
</div>
</body>

enter image description here

Интересно, что печатает fb_data:

Array ( [me] => [uid] => 0 [loginUrl] => https://www.facebook.com/dialog/oauth?client_id=XXXXXXX&redirect_uri=localhost%3A81%2Fvideoyorum%2F&state=XXXXXXXXXXX&scope=email%2Cuser_birthday%2Cpublish_stream [logoutUrl] => https://www.facebook.com/logout.php?next=http%3A%2F%2Flocalhost%3A81%2Fvideoyorum%2F&access_token=XXXXXXXXX%XXXXXXXXXX)

XXXX часть включает в себя ключи.

Я скопировал эту информацию и вставил ее в свой браузер. Выдает ту же ошибку.

Это мои настройки fb-приложений:
enter image description here

Что не так? Что вызывает ошибку?

Ответы [ 2 ]

0 голосов
/ 05 июля 2012

измените ваше имя локального хоста на доменное имя. Потому что приложение facebook не поддерживает адрес локального хоста.
File Path-> C:\WINDOWS\system32\drivers\etc
Это пример файла hosts
127.0.0.1 localhost loopback
::1 localhost
127.0.0.1 localhost
127.0.0.1 facebooktest.com
Читать это

0 голосов
/ 24 апреля 2012

Попробуйте установить

localhost:81/videoyorum/

в вашем $ fb_data_array равным

http://localhost:81/videoyorum

Или, если это не сработает, попробуйте использовать нелокальный сервер (получите веб-хостингпровайдер).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...