Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pablo Gates

Inclua álbuns do facebook no seu site

Recommended Posts

IMPORTANTE

Este método está desatualizado, assim que eu conseguir atualizar eu disponibilizarei aqui.

Obrigado

 

Bom galera

 

Essa classe lista e exibe todos os álbuns do seu facebook, assim você pode utilizar um plugin de sua preferência para dar um efeito legal na sua galeria, eu dei uma customizada no script original, basta você incluir o jquery de sua preferência ex(shadowbox, lighbox e etc)...

 

créditos: http://www.phpclasses.org/browse/file/33718.html

 

Obs: o arquivo phpcUrl.php tem de estar na mesma página que o index.php

 

Vamos lá:

 

index.php (mostra seus álbuns para entrar nas respectivas galerias)

<!DOCTYPE HTML>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Facebook Albuns</title>

<link rel="stylesheet" type="text/css" href="style.css" media="screen"/>
</head>

<body>
	<?php
	   define('PAGE_ID', 'ID DA SUA PAGINA Exemplo: 000011112222333');
	   define('APP_ID','');
	   define('APP_SECRET','');
	   include("phpcUrl.php");
	   $face = new FacePageAlbum(PAGE_ID, $_GET['aid'], $_GET['aurl'], APP_ID, APP_SECRET);
	?>
</body>
</html>

phpcUrl.php (eis a classe)

<?php
class FacePageAlbum
{
		private $URL;
		private $TOKEN;
		private $PAGE;
		private $PHOTOS;
		private function setPage()
		{
				$protocol = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
				$this->PAGE = $protocol.'://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
		}

		private function setAlbumUrl($id)
		{
			if(is_numeric($id))
			{
				if($this->TOKEN)
				{
					$this->URL = "http://graph.facebook.com/".$id."/albums?".$this->TOKEN;
					return true;
				}
				else
				{
					$this->URL = "http://graph.facebook.com/".$id."/albums";
					return true;				
				}
			}
			else
			{
				return false;
			}
		}
		private function setToken($appId, $appSecret)
		{
			$this->TOKEN = $this->curlGetFile('https://graph.facebook.com/oauth/access_token?type=client_cred&client_id='.$appId.'&client_secret='.$appSecret);
		}
		
		public function FacePageAlbum($id, $albumId, $aurl, $appId, $appSecret)
		{
			$this->setPage();
			if($id)
			{
				if($appId && $appSecret)
					$this->setToken($appId, $appSecret);
				$this->setAlbumUrl($id);
				if($albumId && $this->albumChk($albumId))
				{
					$this->PHOTOS = 'http://graph.facebook.com/'.$albumId.'/photos';
					$json  = json_decode($this->curlGetFile($this->PHOTOS));
					if($json -> error) die("THERE HAS BEEN AN ERROR:album id invalid");
					echo '<a class="FBback" href="javascript:history.go(-1)">Voltar</a>';
					echo '<a class="FBbackAlbuns" href="'.$this->PAGE.'">Voltar para álbuns</a>';
					
					
					if($json->paging->previous)
						echo '<a class="FBprev" href="'.$PAGE.'?aurl='.urlencode($json->paging->previous).'">Voltar</a>';
					if($json->paging->next)
						echo '<a class="FBnext" href="'.$PAGE.'?aurl='.urlencode($json->paging->next).'">Próximo</a>';
					echo '<br clear="all" />';
					foreach($json->data as $v)
					{
						echo "<a class='ImageLink' href = '".$v->source."'><img class='thumbsA' src='".$v->picture."' /></a>";
					}
					return true;
				}
				else if ($aurl)
				{
					$this->PHOTOS = urldecode($aurl);
					$json  = json_decode($this->curlGetFile($this->PHOTOS));
					if($json -> error) die("THERE HAS BEEN AN ERROR: album url invalid");
					echo '<a class="FBback" href="javascript:history.go(-1)">Voltar</a>';
					echo '<a class="FBbackAlbuns" href="'.$this->PAGE.'">Voltar para álbuns</a>';
					if($json->paging->previous)
						echo '<a class="FBprev" href="'.$PAGE.'?aurl='.urlencode($json->paging->previous).'">Voltar</a>';
					if($json->paging->next)
						echo '<a class="FBnext" href="'.$PAGE.'?aurl='.urlencode($json->paging->next).'">Próximo</a>';
					echo '<br clear="all" />';
					foreach($json->data as $v)
					{
						echo "<a class='ImageLink' href = '".$v->source."'><img width='110px' src='".$v->picture."' /></a>";
					}
					return true;
				}
				else
				{
					$json = json_decode($this->curlGetFile($this->URL));
					if($json -> error) die("THERE HAS BEEN AN ERROR: pageId invalid");
					foreach($json->data as $v)
					{
					echo "<div class ='ImgWrapper'>";
					echo "<img src='https://graph.facebook.com/".$v->id."/picture' />";
						//echo  $v->from->name."<br>"; NOME DA PAGINA
						echo  "<a href = '".$this->PAGE;
						echo  "?";
						echo  "aid=".$v->id."'>".$v->name."</a>";
						echo  "<span>Fotos:".$v->count."</span><br>";
						echo "<br clear='all'></div>";
					}
					return true;
				}
			}
			return false;
		}
		public function curlGetFile($curlUrl)
		{
			$ch = curl_init(); 
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch, CURLOPT_URL, $curlUrl); 
			$data = curl_exec($ch); 
			curl_close($ch);
			return $data;
		}
		
		public function albumChk($albumId)
		{
			$json = json_decode($this->curlGetFile($this->URL));
			$arrayId = array();
			foreach($json->data as $v)
						array_push($arrayId, $v->id);
			if(!in_array($albumId,$arrayId)) return false;
			return true;
		}
};
?>

style.css (estilo css que eu fiz, para facilitar a vida de todos haha)

/*=========================================================
   RESET
=========================================================*/
*{
   margin:0;
   padding:0;
}
/*=========================================================
   GALERIA
=========================================================*/
.ImgWrapper{
   float:left;
   display:block;
   background:#eaeaea;
   margin:5px;
   width:200px;
   height:210px;
}

.ImgWrapper img{
   display:block;
   margin:10px auto;
   max-width:190px;
   height:125px;
}

.ImgWrapper a{
   display:block;
   text-decoration:none;
   font:bold 14px Trebuchet MS, Arial, Verdana;
   text-align:center;
   color:#333;
}

.ImgWrapper a:hover{
   color:#fff;
}

.ImgWrapper span{
   display:block;
   padding:2px 0;
   font:12px Trebuchet MS, Arial, Verdana;
   text-align:center;
   color:#606060;
}

.thumbsA{
   margin:5px;
   max-width:110px;
   height:110px;
}
/*=========================================================
   BOTÕES
=========================================================*/
.FBback, .FBprev, .FBnext, .FBbackAlbuns{
   display:block;
   float:left;
   margin:5px 5px 10px 0;
   width:130px;
   text-align:center;

   border-top: 1px solid #d6d6d6;
   background: #707375;
   background: -webkit-gradient(linear, left top, left bottom, from(#9fa3a6), to(#707375));
   background: -webkit-linear-gradient(top, #9fa3a6, #707375);
   background: -moz-linear-gradient(top, #9fa3a6, #707375);
   background: -ms-linear-gradient(top, #9fa3a6, #707375);
   background: -o-linear-gradient(top, #9fa3a6, #707375);
   padding: 1px 0;
   -webkit-border-radius: 6px;
   -moz-border-radius: 6px;
   border-radius: 6px;
   -webkit-box-shadow: rgba(0,0,0,1) 0 1px 0;
   -moz-box-shadow: rgba(0,0,0,1) 0 1px 0;
   box-shadow: rgba(0,0,0,1) 0 1px 0;
   text-shadow:0px -1px 0px #5b5b5b;
   color: #ffffff;
   font:bold 12px Trebuchet MS, Arial, Verdana;
   text-decoration: none;
   vertical-align: middle;
}

.FBback:hover, .FBprev:hover, .FBnext:hover, .FBbackAlbuns:hover{
   border-top-color: #ccc;
   background: #70767a;
   color: #ffffff;
}

.FBback:active, .FBprev:active, .FBnext:active, .FBbackAlbuns:active{
   border-top-color: #fff;
   background: #666666;
}

Galera espero ter sido útil, aproveitem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá tentei e segui todos os passos deste post e só consigo o seguinte "erro":
THERE HAS BEEN AN ERROR: pageId invalid

 

Fiz um teste no seguinte endereço:

http://zumback.com.br/teste/

 

no link " FOTOS/VÍDEOS" e o que me aponta é:

THERE HAS BEEN AN ERROR: pageId invalid

 

Teria como me dizer o que fazer ou me apontar algum link que tenha este

sistema eme funcionamento? ou teria alguma outra solução para exibir albums do face no site?

 

Augardo

Att
Adriano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pablo, nao fiz alteração nenhuma

 

LINHA 90 foreach($json->data as $v)

{

die("Testedentro"); (coloquei essa linha so pra ver se entrava no codigo)

echo "<div class ='ImgWrapper'>";

echo "<div style = 'width:125px; height:120px;overflow:hidden'>

<img width='125px' src='https://graph.facebook.com/".$v->id."/picture' />

</div>";

echo $v->from->name."<br>";

echo "<a href = '".$this->PAGE;

echo "?";

echo "aid=".$v->id."'>".$v->name."</a>";

echo "<br>Num of images:".$v->count."<br>";

echo "<br clear='all'></div>";

}

 

  Em 22/08/2013 at 16:58, Pablo Gates disse:

Tiago, você fez alguma alteração no script ?

 

Poste por favor a linha do erro para que eu possa ver.

 

??

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 27/08/2013 at 13:29, Pablo Gates disse:

O código citado acima, é um exemplo completo...

 

Pablo, nao sei entao o que esta havendo.

resumindo o que fiz

 

codigo albumface.php

 

<!DOCTYPE HTML>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Facebook Albunsteste</title>
<link rel="stylesheet" type="text/css" href="style.css" media="screen"/>
</head>
<body>
<?php
define('PAGE_ID', '112618115512126');
define('APP_ID','');
define('APP_SECRET','');
include("phpcUrl.php");
$face = new FacePageAlbum(PAGE_ID, $_GET['aid'], $_GET['aurl'], APP_ID, APP_SECRET);
?>
</body>
</html>
arquivo phpcUrl.php e style.php copiado e colado igual sem alteração e enviados ao servidor

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 27/08/2013 at 14:00, Pablo Gates disse:

É style.css cara você está colocando style.php

 

arquivo phpcUrl.php e (((style.php))) copiado e colado igual sem alteração e enviados ao servidor

 

isso

 

style.css

eu que escrevi errado, desculpe

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 27/08/2013 at 14:18, Pablo Gates disse:

certo, o exemplo citado funciona corretamente estou pensando que pode haver algo de errado com seu servidor.

 

Seu servidor está com o cUrl instalado ? e roda php normalmente ?

 

cUrl instalado nao sei,

mas eu sei que roda php 5

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.