-1

私はそれが行われたのを見てきましたが、それはかなり可能です。Klout.com で..たとえば、Twitter からログインすると、自分のプロフィールにリダイレクトされます。Facebook アカウントを Klout.com に接続する場合は、Facebook 接続をクリックすると、両方のアカウントが統合されます。あなたのツイートと Facebook のステータスの両方、私はクールだと思います。私は自分のウェブサイトに実装しようとしています。API を使用して Facebook の友達と Twitter のフォロワーを取得する方法は知っていますが、両方のアカウントを統合してサイトに両方のデータを含める方法がわかりません。

誰かが私がそれをどうやってやるべきかについて私を助けることができますか? 今、やってみました。twitter APIとそのセッションを介して私のウェブサイトにtwitterでログインし、twitterでログインするとfacebookログインボタンを追加しましたが、facebookボタンは機能しますが、同じメンバーエリアのtwitterデータの中でfacebookデータを表示できませんページ。これを実現する方法について、ご支援をいただければ幸いです。本当にありがとう 。

<?php
session_start();
require_once('../madscore/twitter/twitteroauth/twitteroauth.php');
require_once('../madscore/twitter/config.php');
require('../madscore/database/connect.php');


/* If access tokens are not available redirect to connect page. */
if (empty($_SESSION['access_token']) || empty($_SESSION['access_token']['oauth_token']) || empty($_SESSION['access_token']['oauth_token_secret'])) {
    header('Location: ./clearsessions.php');
}
/* Get user access tokens out of the session. */
$access_token = $_SESSION['access_token'];

/* Create a TwitterOauth object with consumer/user tokens. */
$handle = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']);

?>

<?php
    require "../madscore/authentication.php";
   // $config['baseurl'] ="../index3.php";

    //if user is logged in and session is valid.
    if ($fbme){
        //Retriving movies those are user like using graph api
        try{
            $movies = $facebook->api('/me/movies');
            $pages = $facebook->api('/me/likes');

        }
        catch(Exception $o){
            d($o);
        }

        //Calling users.getinfo legacy api call example
        try{
            $param  =   array(
                'method'  => 'users.getinfo',
                'uids'    => $fbme['id'],
                'fields'  => 'name,current_location,profile_url',
                'callback'=> ''
            );
            $userInfo   =   $facebook->api($param);
        }
        catch(Exception $o){
            d($o);
        }

        //update user's status using graph api
        if (isset($_POST['tt'])){
            try {
                $statusUpdate = $facebook->api('/me/feed', 'post', array('message'=> $_POST['tt'], 'cb' => ''));
            } catch (FacebookApiException $e) {
                d($e);
            }
        }

        //fql query example using legacy method call and passing parameter
        try{
            //get user id
            $uid    = $facebook->getUser();
            //or you can use $uid = $fbme['id'];

            $fql    =   "SELECT pic_square
FROM user 
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())";
            $param  =   array(
                'method'    => 'fql.query',
                'query'     => $fql,
                'callback'  => ''
            );
            $fqlResult   =   $facebook->api($param);
        }
        catch(Exception $o){
            d($o);
        }
    }
?>

// This displays my twitter followers , and it works .. but below this code when i try to actually display data from facebook , nothing happens ..
<?php
$followers = $handle->get('friends/list', array('screen_name' => $screen_name));
         $json  = json_encode($followers);
         $array = json_decode($json, true); 


                              shuffle($array);

                          if(is_array($array))
                             {

                               foreach($array as $value)

                               {

                                 if(is_array($value))
                                   {
                                     foreach($value as $key => $second)

                                      {
                                         if(is_array($second))
                                          {
                                            foreach($second as $key_second => $third)

                                                if($key_second !='profile_image_url')
                                                {
                                                     unset($key_second);
                                              }

                                             else

                                              {

                                                   echo "<img src='".$third."' width='100' height='100'/>";
                                             }




                                           }






                                     }





                             }

                        }
                  }  




?>

Facebookデータがここで返されるかどうかをテストしています..何も起こりません..

<?php var_dump($fbme); ?>

これは、facebook の require ステートメントからの認証ファイルです。

<?php
    $fbconfig['appid' ]  = "314286708589099";
    $fbconfig['api'   ]  = "314286708589099";
    $fbconfig['secret']  = "8f803e0f9e9da4f2ba9f23ad3bd00ded";

    try{
        include_once "../madscore/facebook/facebook-sdk/src/facebook.php";
    }
    catch(Exception $o){
        echo '<pre>';
        print_r($o);
        echo '</pre>';
    }
    // Create our Application instance.
    $facebook = new Facebook(array(
      'appId'  => $fbconfig['appid'],
      'secret' => $fbconfig['secret'],
      'cookie' => true,
    ));

    // We may or may not have this data based on a $_GET or $_COOKIE based session.
    // If we get a session here, it means we found a correctly signed session using
    // the Application Secret only Facebook and the Application know. We dont know
    // if it is still valid until we make an API call using the session. A session
    // can become invalid if it has already expired (should not be getting the
    // session back in this case) or if the user logged out of Facebook.
    $session = $facebook->getUser();

    $fbme = null;
    // Session based graph API call.
    if ($session) {
      try {
        $uid = $facebook->getUser();
        $fbme = $facebook->api('/me');
      } catch (FacebookApiException $e) {
         // d($e);
      }
    }

    function d($d){
        echo '<pre>';
        print_r($d);
        echo '</pre>';
    }
?>
4

1 に答える 1

0

それは本当に簡単です。前述のように、ユーザーが Twitter と Facebook の両方で OAuth トークンを作成できるようにする必要があります。

システム設計について。ユーザーテーブルを用意することをお勧めします。次に、ユーザーごとに、OAuth-twitter および OAuth-facebook テーブルに新しいレコードを追加します。

Facebook API の技術的な問題に直面していると思います。コードを貼り付けてください。

于 2012-12-30T06:11:47.810 に答える