<?php //create 1 hour life cookie to prevent duplicate news
feed story.
/*
session_start();
if(isset($_SESSION['views']))
$_SESSION['views']=$_SESSION['views']+1;
else
$_SESSION['views']=1;
echo "Total Visits: ". $_SESSION['views'];
//*/
////////// session or cookie /////////////////
if (isset($_COOKIE["updatetime"])){
}
else{
setcookie("updatetime", time(), time()+3600);
}
?>
<?php
require_once 'facebook.php';
$appapikey = '3d3fabe3276d1dd50ddf78353c719af4';
$appsecret = 'fe4754d97d24392ba9e40105f0ea0a08';
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook->require_login();
// Greet the currently logged-in user!
echo "<p>Hello, <fb:name uid=\"$user_id\" useyou=\"false\"
/>!<br/>"." There are new messages on the YQLM group.</p>";
?>
<?php
// Parse the Rss feed.
$doc = new DOMDocument();
$doc->load
('http://groups.google.co.uk/group/londonppl/feed/atom_v1_0_ms
gs.xml');
//$doc->load
('http://feeds.feedburner.com/YqlmLondonGoogleGroup');
$arr = array();
foreach ($doc->getElementsByTagName('entry') as $node) {
$itemRSS = array (
'author' => $node->getElementsByTagName
('name')->item(0)->nodeValue,
'email' => $node->getElementsByTagName
('email')->item(0)->nodeValue,
'date' => $node->getElementsByTagName
('updated')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')
->item(0)->getAttribute("href"),
'title' => $node->getElementsByTagName
('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName
('summary')->item(0)->nodeValue);
array_push($arr, $itemRSS);
}
?>
<?php
// Show Rss contents in facebook canvas.
$dashbutton = <<<EndHereDoc
<fb:dashboard> <fb:create-button
href="http://www.facebook.com/apps/application.php?
id=11393681690">Add/Remove this application</fb:create-button>
</fb:dashboard>
EndHereDoc;
echo $dashbutton;
for ($i=0;$i<10;$i++){
echo '<br/>'.'==================='.'<br/>';
$item = $arr[$i];
$author = ($item['author']=="")?$item['email']:$item
['author'];
$content = '<b>'.$author.'</b><i> said on </i>'.$item
['date'].'<br/>'.'<a href="'.$item['link'].'">'.$item
['title'].'</a><br/><li>'.$item['desc'].'</li>';
echo $content;
}
?>
<?php
// Generate short contents in users' profile file.
$profilecontent = '<a
href="http://apps.facebook.com/googlegroupsnotifier">YQLM
Group</a><br/>';
for ($i=0;$i<2;$i++){
$pitem = $arr[$i];
$author = ($pitem['author']=="")?$pitem
['email']:$pitem['author'];
$profilecontent =
$profilecontent.'==================='.'<br/><b>'.$author.'</b>
<i> said on </i>'.$pitem['date'].'<br/><i>'.$pitem
['title'].'</i><br/><li>'.$pitem['desc'].'</li><br/>';
}
?>
<?php
///*
// This is for fbml_setRefHandle
$fbml = <<<EndHereDoc
<fb:wide>
$profilecontent
<fb:editor
action="http://apps.facebook.com/googlegroupsnotifier">
<fb:editor-button value="More messages"/>
</fb:editor>
</fb:wide>
<fb:narrow>
$profilecontent
<fb:editor
action="http://apps.facebook.com/googlegroupsnotifier">
<fb:editor-button value="More messages"/>
</fb:editor>
</fb:narrow>
EndHereDoc;
$facebook->api_client->fbml_setRefHandle
("googlegroupsnotifier",$fbml);
// */
$refinprofile = '<fb:ref handle="googlegroupsnotifier" />';
$facebook->api_client->profile_setFBML
($refinprofile,$user_id);
?>
<?php
// This is for news feed/mini feed.
$title_template = "{actor} viewed the group";
$title_data = null;
$body_template = null;
$body_data = null;
$fitem = $arr[0];
$author = ($fitem['author']=="")?$fitem
['email']:$fitem['author'];
$feedcontent = '<br/>'.$author.' said
<br/><b>'.$fitem['desc'].'</b><br/> in the topic of
'.'<i>'.$fitem['title'].'</i>';
$body_general = 'The latest post : <br/>'.$feedcontent;
//print_r($_COOKIE);
//echo time()-$_COOKIE["updatetime"];
if (time()-$_COOKIE["updatetime"]>3600){
echo "<br/><i>A new news feed will be published in the
next 1 hour.</i>";
try{
$facebook->api_client-
>feed_publishTemplatizedAction
($title_template,$title_data,$body_template,$body_data,$body_g
eneral);
}catch(Exception $e) {
//this will clear cookies for your app and
redirect them to a login prompt
echo "<br/><br/><i>"."Update the news feed too
many times, no news will appear today."."</i>";
$facebook->set_user(null, null);
}
}
else
echo "<br/><i>No news feed will be published in the
next 1 hour.</i>";
?>