Facebook Connect API

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

24/07/2012 12:43:08
Quote Anchor link
Ik ben bezig om de Facebook Connect API te laten werken op mijn website zodat mensen zich niet hoeven te registreren en gewoon kunnen inloggen met hun Facebook account.

Het framework waar ik mee werk is Codeigniter, ik heb al vele tutorials gevolgd en geprobeerd maar helaas wil het gewoon NIET lukken.

Hopelijk kunnen jullie mij wat ondersteuning geven.

De API word geladen met dmv een "library"
Ik zal de controller, view en model hieronder posten.
(De API key en API Secret heb ik ff eruit gelaten, maar deze staan wel ingevuld)

Er is een LIVE example op:
Live Example

Controller (welcome)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
class Welcome extends CI_Controller {

    function
__construct()
    {

        parent::__construct();

        $this->load->model('Facebook_model');
    }
    
    function
index()
    {

        $fb_data = $this->session->userdata('fb_data');

        $data = array('fb_data' => $fb_data);
        
        $this->load->view('welcome', $data);
    }
    
    function
topsecret()
    {

        $fb_data = $this->session->userdata('fb_data');
        
        if((!$fb_data['uid']) or (!$fb_data['me']))
        {

                    redirect('welcome');
        }

        else
        {
                    $data = array('fb_data' => $fb_data);

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

?>


View (welcome)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Facebook PHP SDK on CI Reactor TEST</title>
</head>
<body>
<div>
  <?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; ?>
</div>
</body>
</html>


View (topscret)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Facebook PHP SDK on CI Reactor TEST</title>
</head>
<body>
<div> <img src="https://graph.facebook.com/<?php echo $fb_data['uid']; ?>/picture" alt="" class="pic" />
  <p><?php echo $fb_data['me']['name']; ?>, you are watching a top secret page. Ssshhhh.</p>
  <p><a href="<?php echo site_url('welcome'); ?>">Go to the home page</a> or <a href="<?php echo $fb_data['logoutUrl']; ?>">logout</a></p>
</div>
</body>
</html>


Model
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    
class Facebook_model extends CI_Model {
    
    public function __construct()
    {

        parent::__construct();

        $config = array(
                        'appId'  => '**',
                        'secret' => '**',
                        'fileUpload' => false, // 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' => 'http://dev.lemoninternetbureau.nl/zoekmijnhuisdier/welcome/topsecret/' // URL where you want to redirect your users after a successful login
                            )
                        ),

                        'logoutUrl' => $this->facebook->getLogoutUrl(),
                    );


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

?>


Toevoeging op 24/07/2012 13:29:14:

Het werkt. Voor iedereen die er belangstelling naar heeft.


In base_facebook.php word gebruik gemaakt van de PHP function "$_REQUEST" als je deze vervangt naar de "$_GET" function werkt alles prima.
Gewijzigd op 24/07/2012 12:46:28 door
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.