-3

私は多くの方法で試しました..私はphp-sdkを使用し、他の多くの方法で...しかし、私は自分のウェブサイトをfacebookに接続できません...実際..私はcodeigniterでプロジェクトを行っています。Facebookのログインに接続して、codeigniterを使用して共有することを提案してください。

<?php
            include "libs/facebook.php";
            $facebook = new Facebook(array(
                'appId' => '376406812408828',
                'sec`enter code here`ret' => 'ca1eb65bde82a4009c31b4a5adb047b5',
                'cookie' => true
            ));
            print_r($facebook);
            $session = $facebook->getUser();
            echo $session;
            $me=null;
            if($session)
            {
                try
                {

                    $me = $facebook->api('/me');
                    echo $me;
                     $facebook->api('/me/feed','post',array('message' => 'Hello World!'));
                }
                catch(FacebookApiException $e)
                {
                    echo $e->getMessage();
                }
            }
            if($me)
            {
                $logoutUrl = $facebook ->getLogoutUrl();
                echo "<a href=".$logoutUrl.">Logout</a>";
            }
            else
            {

                $loginUrl = $facebook ->getLoginUrl(array(        
                    'req_perms' => 'publish_stream,read_friendlists'
                ));
                echo "<a href=".$loginUrl.">Login</a>";
            }
        ?>
4

2 に答える 2

2

Danny Tran は、CodeIgniter 用のシンプルで簡単な Facebook ライブラリを提供しています。

CI_FacebookFacebook Library for CodeIgniter.

すべてのファイルを対応する場所にコピー/マージし、config/facebook.php をセットアップするだけです。

関数/クラスごとに記述された単体テストがあります。それらを実行するには PHPUnit が必要です。

フックが自動ロードするため、Facebook オブジェクトへのアクセスは簡単です。

e.g. $user_data = $this->facebook->fb->api_client->fql_query("select name from user where uid = TARGETUSERID");

Githubのライブラリへのリンク: https://github.com/dannybtran/CI_Facebook

お役に立てれば。

于 2012-06-21T13:35:16.277 に答える
0

数週間、私は同じことをしなければなりませんでしたが、その後、これを思いつきました。ajaxログインに必要でしたが、ほとんどの人が必要とするものに合っています。

これが最初のステップです。Facebook のログインを要求し (まだログインしていない場合)、以前に設定した URI にリダイレクトします。

$this->load->library('facebook_handler');
$this->facebook_handler->loginBegin($this->config->item('endpointfacebook'));

ライブラリ フォルダー内の Facebook_handler

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


class Facebook_handler extends ML_index
{

        var $scope = "email, user_about_me, user_birthday, user_hometown, user_website,read_stream, publish_stream, read_friendlists";


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

        $this->CI =& get_instance();
        $this->CI->config->load('mlogin_config'); //Config where I have the keys

        if ( ! $this->CI->config->item('facebook_api_key') || ! $this->CI->config->item('facebook_api_key_secret') )
        {
            throw new Exception( "Your application id and secret are required in order to connect to {$this->providerId}.", 4 );
        }
        include_once(APPPATH.'libraries/Facebook/base_facebook.php'); //Place where I've situated the facebook libraries
        include_once(APPPATH.'libraries/Facebook/facebook.php');

        $this->fb = new Facebook( ARRAY( 'appId' => $this->CI->config->item('facebook_api_key'),'cookie'=>true, 'secret' => $this->CI->config->item('facebook_api_key_secret') ) ); 
        $this->user = $this->fb->getUser();

    } 
     /*The login process starts here, endpoint is the redirect_url for facebook*/
    function loginBegin($endpoint) 
    {
        $scope=$this->CI->config->item('facebook_scope');
        if( isset( $scope ) && ! empty( $scope ) )
        {
            $this->scope = $scope;
        }
        $this->logout();
        $url = $this->fb->getLoginUrl( array( 'domain'=>base_url(),'scope' => $this->scope, 'redirect_uri' => $endpoint,'display' => 'popup' ) );

        redirect($url); 
    }

    /*Function to get user data*/
    function getUser(){
        if ($this->user) {
          try {
            // Proceed knowing you have a logged in user who's authenticated.
            $user_profile = $this->fb->api('/me');
            return $user_profile;
          } catch (FacebookApiException $e) {
            error_log($e);
            return false;
            }
        }else{
            $this->output->set_output('no logueado');
        }
    }

    /*Facebook logout, it destroys facebook sessions. I dont really use this*/
    function logout(){
        $this->fb->destroySession();
    }   
}

?>

リダイレクトする関数

function closewindowfacebook(){
           $this->load->library('facebook_handler');
           $userprofile=$this->facebook_handler->getUser();


            if ($userprofile!=false){
               $fb_uid = $this->facebook_handler->fb->getUser();
               $fb_email=$userprofile['email'];
               $fb_name=$userprofile['name'];

                /*My function to connect to the website, that you'd do it yourself*/
               //$this->auth->try_fb_login($fb_uid,$fb_email,$fb_name);

                 /*I use this to close the popup window*/
                             die('<script type="text/javascript">
                    window.opener.everythingready();
                    window.close();
                </script>');

            }  else{
                echo 'error ';
            }


    }

さらに質問があるかどうか尋ねる

于 2012-06-21T13:36:58.443 に答える