2009-08-19 20 views
5

Zauważyłem, że odwiedzając witryny do drukowania zdjęć, pytają, czy chcesz zaimportować swoje zdjęcia z Facebooka. Jak oni to robią? Czy Facebook zapewnia API do importowania zdjęć użytkowników?Jak importować zdjęcia z Facebooka?

Używam głównie PHP.

Odpowiedz

0

Kiedy to zrobiłem, zalogowali się w moim imieniu (wprowadziłem mojego użytkownika/hasło) i przejrzałem albumy ze zdjęciami oczekiwanym kodem HTML.

Było kilka rzeczy prawnych, które musiałem "zaakceptować" i powiadomiono mnie, co zrobią z moimi danymi.

1

Na pewno możesz pobrać zdjęcia od użytkowników, którzy dodali aplikację i wyrazili zgodę na udostępnianie takich informacji. Najpierw pobierzesz albumy za pomocą wywołania API photos_getAlbums, a następnie możesz zapętlić identyfikatory albumów i zadzwonić do photos_get, aby pobrać zdjęcia do albumów.

 
    /** 
    * get_albums() 
    * 
    * @param long $uid 
    * @return array 
    */ 
    function get_albums($uid=null) 
    { 
     if (empty($uid)) 
      $uid = $_REQUEST['fb_sig_user']; 
     try 
     { 
      return $facebook->api_client->photos_getAlbums($uid,null); 
     } 
     catch (FacebookRestClientException $ex)
{ return array(); } }

/** * get_photos() * * @param bool $bool_pids * @param mixed $aids (array of album ids or null) * @return array */ function get_photos($bool_pids=true, $aids=null, $pids=null) { try {
$p = $facebook->api_client->photos_get(null, $aids, $pids); } catch (FacebookRestClientException $ex)
{ }

if ($bool_pids) 
    { 
     $pids = array(); 
     if (!empty($p)) 
     foreach($p as $p0) 
      $pids[] = $p0['pid']; 
     return $pids; 
    } 
    else 
     return $p; 
} 

2
/** 
    * get_albums() 
    * 
    * @param long $uid 
    * @return array 
    */ 
    function get_albums($uid=null) 
    { 
     if (empty($uid)) 
      $uid = $_REQUEST['fb_sig_user']; 
     try 
     { 
      return $facebook->api_client->photos_getAlbums($uid,null); 
     } 
     catch (FacebookRestClientException $ex)  
     { 
      return array(); 
     } 
    } 

/** 
* get_photos() 
* 
* @param bool $bool_pids 
* @param mixed $aids (array of album ids or null) 
* @return array 
*/ 
function get_photos($bool_pids=true, $aids=null, $pids=null) 
{ 
    try 
    { 
     $p = $facebook->api_client->photos_get(null, $aids, $pids); 
    } 
    catch (FacebookRestClientException $ex) { } 

    if ($bool_pids) 
    { 
      $pids = array(); 
      if (!empty($p)) 
      foreach($p as $p0) 
        $pids[] = $p0['pid']; 
      return $pids; 
    } 
    else 
      return $p; 
} 
2

get_albums zwraca tablicę albumów, zrobić var_dump zobaczyć co zwraca.


$albums = get_albums($facebook); 
foreach($albums as $album) 
{ 
    if($album["count"] > 0) 
    { 
      //if the album has pictures, then do something with the album 
    } 
} 

function get_albums($facebook) 
{ 
    $fb_user = getFbUser($facebook); 
    $myalbums = $facebook->api('/me/albums'); 
    return $myalbums["data"]; 
} 

function getFbUser($facebook) 
{ 
    $fb_user = $facebook->getUser(); //gets user id 

    if(is_null($fb_user)) 
    { 
      header("Location:{$facebook->getLoginUrl(array('req_perms' => 'user_status,publish_stream,user_photos'))}"); 
      exit; 
    } 
    return $fb_user; 
} 

function getFb() 
{ 
    $facebook = new Facebook(array(
     'appId' => 'your_appid', 
     'secret' => 'your_secret', 
     'cookie' => true, 
     )); 
    return $facebook; 
} 

Patrz: http://www.joeyrivera.com/2010/facebook-graph-api-app-easy-w-php-sdk/