2014-09-21 35 views
0

我想開發一個網站,我可以登錄使用登錄..愉快地我成功地檢索用戶的信息..此外用戶配置文件圖片顯示時,我使用的鏈接下面。Facebook用戶圖像存儲在我的數據庫

echo '<img src="https://graph.facebook.com/'.$userdata['id'].'/picture">'; 

但我需要這個圖像保存到我的數據庫..我的數據庫名是fbtest和表名是用戶。 要存儲的圖片是圖片和類型是斑點的柱面名稱。 如何將此圖片插入到我的數據庫中。 下面顯示的認證頁面的代碼..

  <?php 
      require 'lib/db.php'; 
      require 'lib/facebook.php'; 
      require 'lib/fbconfig.php'; 
      session_start(); 
      $facebook=$_SESSION['facebook']; 
      $userdata=$_SESSION['userdata']; 
      $logoutUrl=$_SESSION['logout']; 
      $access_token_title='fb_'.$facebook_appid.'_access_token'; 
      $access_token=$facebook[$access_token_title]; 


      if(!empty($userdata)) 
      { 
      echo '<h1>Login User Details</h1>'; 
      echo '<img src="https://graph.facebook.com/'.$userdata['id'].'/picture">'; 
      $img = file_get_contents('https://graph.facebook.com/'.$userdata['id'].'/picture'); 
      echo "<br/>"; 
      echo '<b>Access Token: </b>'.$access_token; 
      echo "<br/>"; 
      echo '<b>User ID: </b>'.$userdata['id']; 
      echo "<br/>"; 
      echo '<b>Name: </b>'.$userdata['name']; 
      echo "<br/>"; 
      echo '<b>First Name: </b>'.$userdata['first_name']; 
      echo "<br/>"; 
      echo '<b>Last Name: </b>'.$userdata['last_name']; 
      echo "<br/>"; 
      echo '<b>Email: </b>'.$userdata['email']; 
      echo "<br/>"; 
      echo '<b>Gender: </b>'.$userdata['gender']; 
      echo "<br/>"; 
      echo '<b>Birthday: </b>'.$userdata['birthday']; 
      echo "<br/>"; 
      echo '<b>Location: </b>'.$userdata['location']['name']; 
      echo "<br/>"; 
      echo '<b>Hometown: </b>'.$userdata['hometown']['name']; 
      echo "<br/>"; 
      echo '<b>Bio :</b>'.$userdata['bio']; 
      echo "<br/>"; 
      echo '<b>Relationship Status: </b>'.$userdata['relationship_status']; 
      echo "<br/>"; 
      echo '<b>Time Zone: </b>'.$userdata['timezone']; 
      echo "<br/>"; 
      echo "<br/>"; 

      $facebook_id=$userdata['id']; 
      $name=$userdata['name']; 
      $email=$userdata['email']; 
      $gender=$userdata['gender']; 
      $birthday=$userdata['birthday']; 
      $location=mysql_real_escape_string($userdata['location']['name']); 
      $hometown=mysql_real_escape_string($userdata['hometown']['name']); 
      $bio=mysql_real_escape_string($userdata['bio']); 
      $relationship=$userdata['relationship_status']; 
      $timezone=$userdata['timezone']; 
      mysql_query("INSERT INTO `users` (`id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `picture`) 
      VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$hometown','$bio','$relationship','$img')") ; 

      echo "<br/>"; 

      echo '<a href="'.$logoutUrl.'">Logout Facebook</a>'; 
      } 
      else 
      { 
       header("Location: fblogin.php"); 
      } 
      ?> 

任何幫助,請???

+0

你爲什麼要在你的數據庫中的實際存儲圖像擺在首位?您需要保持最新狀態,以便當用戶在Facebook上更改他們的個人資料圖片時,理想情況下它應該立即反映在您的應用中 - 因此,您最好只採用已經嵌入的回聲聲明他們在任何需要的情況下都可以看到他們的個人資料,並讓Facebook的CDN完成剩下的工作 – CBroe 2014-09-21 09:20:14

+1

感謝您的答覆..但我不需要它來改變。在我的網站上,我正在從數據庫中獲取個人資料照片。所以我需要在我的數據庫中的圖片,因爲用戶可以將其更改爲任何其他圖片,如果需要從我的網站 – 2014-09-21 10:39:04

回答

1

這裏有兩個適合你的圖片存儲在數據庫中。

在調用facebook圖形API之後,您將能夠獲得個人資料圖片url,之後您可以採取以下兩種方式。

  1. 在您的用戶表中添加個人資料圖片列,並直接在此列中插入圖片路徑。

OR

  • 如果棒添加在圖像柱(blob對象)資料圖片然後第一圖片網址轉換成BASE64然後插入base64編碼數據分成你的圖片專欄。
  • 這裏是將圖像轉換爲base64的代碼。

    <?php 
    
    $imgPath = 'http://abcd.com/profilepicture/mypic.png'; // Facebook profile picture will  replace here. 
    $imgdata = file_get_contents($imgPath); 
    $imgBase64Data = base64_encode($imgdata); 
    
    mysql_query("INSERT INTO `users` (`id`, `name`, `email`, `gender`, `birthday`, `location`, `hometown`, `bio`, `relationship`, `picture`) 
         VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$hometown','$bio','$relationship','$imgBase64Data')") ; 
    

    ?>

    希望這會幫助你。

    感謝 迪內希帕爾

    ?>

    +1

    我只是使用下面的代碼作爲url並將其用於get_file_contents(url)..但圖像存儲爲.bin文件?? $ URL =的 'https://graph.facebook.com/'.$userdata [' ID '] /畫面';'。 – 2014-09-24 07:36:37

    +1

    另外是我怎樣才能得到圖形api的個人資料圖片的正確網址? – 2014-09-24 07:43:40

    +1

    要使用圖形api獲取用戶的Facebook個人資料圖片,請使用這一個。 https://graph.facebook.com/'.$userdata['facebookID'].'?fields=picture&access_token='.$access_token['access_token'] – 2014-09-26 12:50:32

    相關問題