mercoledì 2 novembre 2011

Tab iframe con contenuto visibile solo ai fans


Spiegherò qui di seguito come creare una pagina di Benvenuto visibile solo a chi cliccherà "mi piace".

per creare un benvenuto iframe, se non lo avete gia fatto, leggetevi attentamente questa guida.

Per raggiungere il nostro scopo ci servono :

1)  index.php che è la Welcome page vera e propria da voi creata

2) tab.php la pagina contenente il codice grazie al quale solo i Fans potranno accedere a determinati contenuti

3) notliked.php la pagina che i non fans vedranno appena giunti sulla vostra pagina

4) facebook.php la libreria php di Facebook che vi evita di scrivere kilometri di codice.




Si presume che abbiate gia bella e pronta al vostra index.php, caricatela su un sito host, copiatene l'indirizzo web e conservatelo per dopo

CREARE LA TAB.PHP
Aprite blocco note, copiate su un foglio nuovo questo codice :


<? require 'facebook.php';
$app_id = "scrivi qui la tua app id";
$app_secret = "scrivi qui la tua chiave segreta ";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
function parsePageSignedRequest() { if (isset($_REQUEST['signed_request'])) { $encoded_sig = null; $payload = null; list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2); $sig = base64_decode(strtr($encoded_sig, '-_', '+/')); $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true)); return $data; } return false; } if($signed_request = parsePageSignedRequest()) { if($signed_request->page->liked) { header("Location: index.php"); } else { header("Location: notliked.php"); } }

?>


Dovete solo cambiare i valori di APP_ID e APP_SECRET, i vostri li trovate su https://developers.facebook.com/apps/ nelle impostazioni della vostra app come da immagine qui sotto



Salvate il file di blocco note come tab.php, caricatela sul sito host, copiatene l'indirizzo web e conservatelo per dopo

CREARE LA NOTLIKED.PHP
Createvi una paginetta con una immagine che invita a cliccare mi piace e diventare fan per poter accedere ai contenuti, vi mostro uno screenshot della mia come esempio


Salvatela come "notliked.php" e caricatela sul solito sito host.

Scaricate da qui (file zip)la library facebook.php e caricatela sul vostro sito host

Bene, il più è fatto, sul vostro server online ora avete caricato, come da immagine, i files INDEX.PHP, TAB.PHP, NOTLIKED.PHP e FACEBOOK.PHP.


Accertatevi che ci siano tutti e quattro prima di proseguire.


Aprite ora
https://developers.facebook.com/apps/ e andate nelle opzioni della vostra pagina di benvenuto cliccando su "edit settings"
Andate su "app on Facebook" ed incollate il link della vostra index.php, come da immagine di esempio (tralasciando l'index.php finale)



Andate su "page tab" e incollate il link della vostra "tab.php" precedentemente salvato, come da immagine di esempio.


Salvate il tutto e fate una prova, se non siete Fan della pagina dovrebbe comparirvi la scheda che invita a cliccare mi piace
Se diventate fan vi comparirà la normale index.php
Fate una prova con un profilo diverso dal vostro, visto che siete amministratori della pagina.Se tutti i passaggi sono stati completati il risultato è certo
Alla prossima
Luca

27 commenti:

  1. Riesci a mettere il link di download della library PHP, proprio il file facebook.php

    RispondiElimina
  2. Link aggiornato con il solo file facebook.php
    ciao
    Luca

    RispondiElimina
  3. Grazie Luca, saluti :) Petar

    RispondiElimina
  4. Dimmi di più, quale risultato ottieni? ti da degli errori?
    Hai seguito tutto alla lettera? ricontrolla tutti i passaggi
    ciao
    luca

    RispondiElimina
  5. A me da questo errore:

    Fatal error: Uncaught exception 'Exception' with message 'Facebook needs the CURL PHP extension.' in D:\inetpub\webs\orizzontidigitaliit\fb\facebook.php:4Stack trace:#0 D:\inetpub\webs\orizzontidigitaliit\fb\tab.php#1#: require###1 {main} thrown in D:\inetpub\webs\orizzontidigitaliit\fb\facebook.php on line 4

    RispondiElimina
  6. Ciao Andrea, che sito hai usato per Hostare?
    sembra ceh il sito host abbia disabilitato CURL
    bisogna abilitarlo dal sito
    Hai usato altervista come nell'esempio?
    Luca

    RispondiElimina
  7. Ciao Luca, ho tutto sul mio sito su ARUBA.
    Devo controllare dal mio pannello di controllo se ha CURL disabilitato ?
    Provo a vedere.
    Intanto grazie, ciao.
    Andrea

    RispondiElimina
  8. ciao scusa se do ancora noie, a me invece da questo errore
    Parse error: syntax error, unexpected T_NEW in /membri/angelofdreams/facebook.php on line 4

    la pagina creata seguendo le tue istruzioni ha il seguente indirizzo
    http://angelofdreams.altervista.org/
    e li mi compare ma quando la metto su facebook o clicco da altervista su facebook.php o su tab.php esce l'errore sopra riportato

    RispondiElimina
  9. Fra, probabilmente hai su altervista la versione php 4 (lo trovo strano ma controlla)
    su altervista vai su pannello di controllo clicca gestione files e clicca sull'ingranaggio con la scritta php.
    Verifica di avere php5 attivato (io ho controllato ed ho la 5.2)
    fammi sapere
    ciao
    Luca

    RispondiElimina
  10. si era quello il problema ora va tutto alla grandissima, grazie ancora ora solo una domanda ma come faccio a fare in modo che la prima pagina che vedono sia sempre quella, bisogna per forza rendere la pagina ufficiale?

    RispondiElimina
  11. Si, dipende dal tipo di pagina che hai creato, se è un gruppo, per esempio, mi sembra che non è possibile impostare la prima pagina che verr vista dai visitatori.

    RispondiElimina
  12. Ciao Luca, ho provato a vedere sul mio hosting su Aruba e sembra che CURL sia abilitato (ma non è una cosa che posso fare io ma lo fa il provider e leggendo in rete ho trovato che ARUBA accetta questo comnado php).
    Cosa mi consigli di fare ?
    Provo su altervista come da tuo esempio ?
    grazie.

    RispondiElimina
  13. Guarda non conosco Aruba non avendolo mai provato..
    Posso dirti che su altervista funziona al 100%, se trovo una soluzione te la scrivo senz'altro o se qualcuno la posta ci fa una gentilezza
    ciao
    Luca

    RispondiElimina
  14. Ti confermo che su altervista mi funziona tutto, quindi è un problema su aruba.
    Grazie.

    RispondiElimina
  15. Salve Luca ho eseguito alla lettera la guida e funziona tutto correttamente. Mi piacerebbe però sapere come potrei centrare testo e immagini rimuovendo pure lo scrollbar applicando sul tab.php sia per i fan che non FB.Canvas.setAutoResize(100);

    RispondiElimina
  16. Ciao, mi era sfuggita la domanda, non avevo visto il commento scusami
    Probabilmente avrai gia risolto comunque :

    per le scrollbar io inserisco nel file di stile css la seguente stringa :

    body { overflow:hidden; }

    Per centrare il tutto basta un "text align = center" sempre nel css
    ciao
    Luca

    RispondiElimina
  17. Ciao, Luca
    è da ieri che non mi funzionano più le applicazioni che ho creato seguendo le tue istruzioni, eppure non ho toccato nulla come mai?

    RispondiElimina
  18. Ciao Cloude dimmi di piu', in che senso non funzionano, che messaggio di errore ti esce, mandami magari il link alle pagine

    RispondiElimina
  19. Ciao Luca, grazie per la risposta.
    Ieri per tutta la giornata le applicazioni non erano funzionanti, pensavo che facebook avesse apportato delle modifiche, ma cercando un pò in rete si parlava del fatto che ogni iframe dovrebbe essere collegata ad una pagina con connession sicura ssl.

    Comunque ero riuscito anche risolvere il tutto appoggiandomi ad un sito per la connessione sicura, ma oggi vedendo le apps realizzate da un amico, funzionano di nuove correttamente, forse sarà stato un disservizio momentaneo?

    RispondiElimina
  20. Ho capito il problema da cosa è causato, nel mio profilo personale è settata la "navigazione protetta" per questo non vedevo le tab, anche se la cosa è comunque strana perché inizialmente le vedevo e la protezione è sempre stata attiva.

    Comunque penso che la miglior soluzione è quella di fornire il link della tab di una connessione protetta, per evitare che una parte di utenti non veda i contenuti.

    RispondiElimina
  21. Grazie Cloude, in effetti sto raccogliendo info sull'argomento per scriverci una guida.
    Io ho dovuto attivare il supporto connessione protetta sul mio sito host (Altervista) ed ho anche pagato per attivarlo.
    Facebook da qualche mese a questa parte ha introdotto l'HTTPS ed alla fine saranno proprio tutte cosi'.
    ci aggiorniamo
    Luca

    RispondiElimina
  22. Prego Luca,
    Comunque se ti interessa io ho già trovato la soluzione, infatti ora le tabs sono funzionanti anche con la connessione protetta attiva.

    RispondiElimina
  23. e se viene fuori

    SSL ha ricevuto un pacchetto che eccede la dimensione massima consentita.

    (Codice di errore: ssl_error_rx_record_too_long)

    prima funzionava tutto e quelli dell'hosting hanno detto che non hanno cambiato nulla...del tipo se ssl girava fino a una settimana fa....

    RispondiElimina
  24. Ciao, mi dici intanto che host è?
    ti faccio sapere subito

    RispondiElimina
  25. Intanto qualche idea :
    usi norton? prova a disabilitarlo e a vedere se torna il messaggio
    Ti da lo stesso errore anche con altri browsers?
    hai acquistato dal tuo host un certificato ssl?
    utilizzi un server proxy locale?
    potrebbe essere non correttamente configurato
    usi firewall? prova a disabilitarlo momentaneamente
    per ora mi viene in mente tutto questo :-)

    RispondiElimina

Lascia il tuo commento, una critica o un grazie sono sempre ben accetti!