redirect na fb like

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Advanced Mendix Developer Order Management Systeme

Advanced Mendix Developer Order Management Systemen (NL) Den Haag HBO/WO IT Professional "Als Advanced Mendix Developer impact maken op de groeiende e-commerce markt? Je doet dit bij PostNL door met je DevOps team onze Mendix applicaties verder te ontwikkelen, waarbij je complexe logistieke business processen vertaalt naar applicaties die ons primaire proces ondersteunen". Wat ga je doen? PostNL wordt een postal tech company We nemen de ontwikkeling van onze IT applicaties in eigen hand door onze eigen software-ontwikkel-capability op te zetten. Als Advanced Mendix Developer ben je onderdeel van een multidisciplinair, agile werkend Business-IT-team. Samen met dit team bouw je onze logistieke IT-applicaties verder

Bekijk vacature »

Sander Zijnstra

Sander Zijnstra

12/12/2012 00:43:26
Quote Anchor link
Ik heb het volgende script om een facebook pagina te liken. Als je op de Like button klikt zorgt dit voor 2 acties.
a. Het opent een window om je eigen bijschrift bij de post op je wall te zetten.
b. Een redirect naar een URL

Deze acties worden tegelijk uitgevoerd. Ik zou graag willen dat de redirect wordt uitgevoerd na het drukken op post to facebook, dit is een knop waar ik volgens mij geen controle over heb.

Iemand een suggestie?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head></head>
<body>
<div id="fb-root"></div>

<fb:like href="http://www.facebook.com/????????????" send="false" width="450" show_faces="false" font=""></fb:like>

<script type="text/javascript">
    window.fbAsyncInit = function() {
        FB.init({appId: '???????????????', status: true, cookie: true, xfbml: true});
        FB.Canvas.setSize({ width: 520, height: 1500 });
        FB.Event.subscribe('edge.create',
            function(response) {
                // put redirect code here eg
                window.location = "http://www.facebook.com/?????????????";
            }
        );
    };

    //Load the SDK asynchronously
    (function() {
        var e = document.createElement('script'); e.async = true;
            e.src = document.location.protocol +
              '//connect.facebook.net/en_US/all.js';
            document.getElementById('fb-root').appendChild(e);
    }());
</script>
</body>
</html>
Gewijzigd op 12/12/2012 08:24:16 door Kees Schepers
 
PHP hulp

PHP hulp

28/11/2021 03:35:32
 
Kees Schepers

kees Schepers

12/12/2012 08:31:54
Quote Anchor link
Graag in het vervolg code insluiten in code tags. Dit maakt het veel beter leesbaar.

Verder ben je wel goed op weg, althans het edge.create event wordt getriggerd nadat iemand je pagina heeft geliked. Je zou dan inderdaad een div (of popup zoals bootstrap modal of fancybox oid) kunnen openen waarmee de persoon in kwestie ook iets op zijn eigen tijdlijn (wat jij wall noemt) kan vermelden.

Ik geloof dat het posten op tijdlijn een ander event is (even zoeken ... ) en volgens mij is dat comment.create of message.send (zou je even moeten testen) en krijg je dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head></head>
<body>
<div id="fb-root"></div>

<fb:like href="http://www.facebook.com/????????????" send="false" width="450" show_faces="false" font=""></fb:like>

<script type="text/javascript">
    window.fbAsyncInit = function() {
        FB.init({appId: '???????????????', status: true, cookie: true, xfbml: true});
        FB.Canvas.setSize({ width: 520, height: 1500 });
        FB.Event.subscribe('edge.create', function(response) {
                //open facebook send popup
            }
        );
    FB.Event.subscribe('message.send', function() {
        //alert('Dude! Bedankt voor het posten op je tijdlijn ik ga je nu wegsturen!');
        window.location = 'http://www.google.nl';
    });
    };

    //Load the SDK asynchronously
    (function() {
        var e = document.createElement('script'); e.async = true;
            e.src = document.location.protocol +
              '//connect.facebook.net/en_US/all.js';
            document.getElementById('fb-root').appendChild(e);
    }());
</script>
</body>
</html>


Zo te zien weet je ook niet wat een app ID is. Deze moet je zelf aanmaken. Je gaat naar https://developers.facebook.com/ en maakt daar een account aan. Als je eenmaal een account aangemaakt heb maak je een "app" aan in het menu en dan krijg je vanzelf een appid die je op de ?????????? kunt zetten :)

Succes!

Toevoeging op 12/12/2012 08:36:31:

Voor het posten naar de 'wall' heb je dit nodig overigens:

https://developers.facebook.com/docs/reference/dialogs/feed/

Het is nog best wel eenvoudig, vooral de URL variant. Gebruik je jQuery? Dan kan ik wel een voorbeeldje maken voor je.
Gewijzigd op 12/12/2012 08:32:23 door kees Schepers
 
Sander Zijnstra

Sander Zijnstra

12/12/2012 11:04:57
Quote Anchor link
Dank voor je reactie! Wat is de code tag om het script weer te geven? Domme vraag i know.

De plekken van de ???? zijn mij bekent. Heb deze bewust veranderd.
De code op zich werkt goed, en er wordt gepost op de tijdlijn. Alleen de redirect naar in jou script google werkt niet. Zie ovllemmer.nl/test2/test2.html

Het probleem in mijn script is dat hij wel werkt maar gelijk nadat je hebt geliked waardoor je geen kans krijgt om de tekst voor je tijdlijn in te vullen.
Zie ovllemmer.nl/test2/test.html
 
Jordi Kroon

Jordi Kroon

12/12/2012 11:59:26
Quote Anchor link
[code]code...[/code]
Gewijzigd op 12/12/2012 12:00:21 door Jordi Kroon
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.