Jump to content
franciscojvp78

[Resolvido] Integrar informações Facebook em Website

Recommended Posts

franciscojvp78

Olá, estou a tentar colocar os albums que tenho no facebook na minha página web.

Já estou a fazer o processo automático para receber o meu próprio Access_Token e aceder à respectiva Graph.

Que actualmente é esta: https://graph.facebook.com/100003672378482/albums?access_token=AAAFdV5RZCX08BAEnLtwAPZAmZApcOEzPHsKcSvN7IMSAo1ZAV3NkZB1ZB6QAyzg9ZBZB6BnXADaFpeMJ54zZCSGG3xE4dmL1GRZATdZBCEkZAwhuqQZDZD

Se não conseguirem aceder ao link é porque o Access_Token já expirou.. mas continuando, através do browser consigo receber informação... aqui fica um excerto:

{
   "data": [
      {
         "id": "117191438413268",
         "from": {
            "name": "Cabaz Em Casa",
            "id": "100003672378482"
         },
         "name": "FRUTAS ... Cabaz em Casa",
         "link": "http://www.facebook.com/album.php?fbid=117191438413268&id=100003672378482&aid=20037",
         "cover_photo": "117246445074434",
         "privacy": "custom",
         "count": 25,
         "type": "normal",
         "created_time": "2012-04-10T15:43:34+0000",
         "updated_time": "2012-04-10T17:02:54+0000",
         "can_upload": true
      },
      {
         "id": "116582438474168",
         "from": {
            "name": "Cabaz Em Casa",
            "id": "100003672378482"
         },
         "name": "LEGUMES...Cabaz em Casa",
.
.
.
etc

mas no PHP quando faço o file_get_contents do endereço ele não devolve nada, fica vazio.. Já fiz uma pesquisa pela Google e supostamente devia funcionar..

Se alguém conseguir ajudar agradeço.. :)

Cumprimentos!  :D

Share this post


Link to post
Share on other sites
clera

ok, ja consegui, mas deves estar a fazer alguma coisa estranha, que pelo link que deste consegui aceder ao json.

bem..


$jsonurl = "https://graph.facebook.com/100003672378482/albums?access_token=AAAFdV5RZCX08BAEnLtwAPZAmZApcOEzPHsKcSvN7IMSAo1ZAV3NkZB1ZB6QAyzg9ZBZB6BnXADaFpeMJ54zZCSGG3xE4dmL1GRZATdZBCEkZAwhuqQZDZD";

$json = file_get_contents($jsonurl);

$json_output = json_decode($json, true);//o true é para tornar o resultado ser dado como uma array assoc.

$albumId=$json_output['data'][1]["id"];

//depois para aceders às fotos dos albuns é só usares o id anterior e ires buscar as fotos pelo mesmo processo


$jsonImg = "https://graph.facebook.com/".$albumId."/photos?access_token=AAAFdV5RZCX08BAEnLtwAPZAmZApcOEzPHsKcSvN7IMSAo1ZAV3NkZB1ZB6QAyzg9ZBZB6BnXADaFpeMJ54zZCSGG3xE4dmL1GRZATdZBCEkZAwhuqQZDZD";


$jsonImgUrl = file_get_contents($jsonImg);

$jsonImgA= json_decode($jsonImgUrl , true);

//print_r( $jsonImgA);

$img=$jsonImgA["data"][0]["picture"];
print '<img src="'.$img.'"/>';

Share this post


Link to post
Share on other sites
franciscojvp78

Experimentei no próprio pc (localhost) e não devolveu nada.. Talvez seja o servidor que não permite o uso do file_get_contents.

Vou experimentar com o servidor online a ver se funciona. Obrigado pela ajuda!

Edit:

Exacto, no servidor online já funcionou! Obrigado :D

Share this post


Link to post
Share on other sites
franciscojvp78

Só mais uma duvida.. eu penso que esse Access_token tem limite de tempo. Mas existe maneira de conseguir que fique sempre activo?

Porque caso ficasse poderia mostrar as fotos directamente do facebook, caso contrário teria de criar um botão que sempre que o administrador carregasse ele actualizava a base de dados com as informações recebidas do facebook.

Cumprimentos!

Share this post


Link to post
Share on other sites
mjamado
Só mais uma duvida.. eu penso que esse Access_token tem limite de tempo. Mas existe maneira de conseguir que fique sempre activo?

Sim, tem limite de tempo; não, não consegues que fique sempre activo.

No entanto, ao expirar, não é preciso voltar a pedir autorização, basta pedir um novo token. Um mecanismo fácil de controlar é, à entrada para o método que faz o pedido dos dados, verificas se o token já expirou (parto do princípio que guardas o token e respectiva data de expiração nalgum lado) e pedes outro. Daí para a frente é igual.

O utilizador nem dá por nada (eventualmente, pode notar um atraso maior do que o normal, mas pouco).


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
franciscojvp78

mjamado, exactamente.. basta pedir um novo Access_Token. Está direitinho a funcionar, Obrigado!  😎 :confused:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.