我正在开博客,我想为博客制作一个'FacebookStatusApp'。 它所要做的就是获取我的最新状态并将其请求转到我的翻译页面。 我可以得到我最新的提要,但问题是accessstoken。 我找到了一种每隔9分钟刷新access_token的方法。这是一个名为:
的网站此网站每隔X分钟拨打一次网址。我选择了9分钟。
我的续订代码非常简单:
<?php
$file = file_get_contents("fbat.txt");
$token = $file;
$token_url = "https://graph.facebook.com/oauth/access_token?client_id=100000280644272&client_secret=secret&grant_type=fb_exchange_token&fb_exchange_token=".$token;
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_URL, $token_url);
$contents = curl_exec($c);
$err = curl_getinfo($c,CURLINFO_HTTP_CODE);
curl_close($c);
$paramsfb = null;
//parse_str($contents, $paramsfb);
echo $contents;
?>
“Fbat.txt”包含当前的AccessToken。
但我的帐户需要一个client_secret。 我的Facebook帐户无法获取AccessToken:/
所以我的解决方案是使用MY ClientID创建一个新应用程序,使用'GRAPH EXPLORER'创建一个HIS ClientSecret来生成一个access_token。
所以我的问题是: 我怎样才能获得我的最新状态和我的access_token。 ?
如果有一个好的选择(例如使用APP),我也可以这样做。
好吧,我希望你理解我的问题:P
答案 0 :(得分:1)
首先,您的Feed需要公开。下面的代码应该完成剩下的工作:
function fb_setup(){
$app_id = 'APP_ID';
$app_secret = 'APP_SECRET';
$response = file_get_contents('https://graph.facebook.com/oauth/access_token?type=client_cred&client_id='.$app_id.'&client_secret='.$app_secret);
$token = str_replace('access_token=', '', $response);
$node = "PAGE_ID(if not a page just use 'me')";
$fields = array();
$fields[] = 'feed';
$fields[] = 'likes';
$response = file_get_contents('https://graph.facebook.com/'.$node.'?fields='.implode(',', $fields).'&access_token='.$token.'');
$arr = json_decode($response);
$data['node'] = $node;
$data['arr'] = $arr;
return $data;
}
function last_post(){
$ret = fb_setup();
$arr = $ret['arr'];
$node = $ret['node'];
$feed = $arr->feed->data;
$ret = "";
$ret .= "<div id='last-fb-post'>";
$item = $feed[0];
$message = str_replace("\n","</p><p>",$item->message);
$likes = (!$item->likes->count) ? '0' : $item->likes->count;
$coms = $item->comments->count;
$ex_id = explode('_',$item->id);
$id = $ex_id[1];
$href = 'http://www.facebook.com/permalink.php?story_fbid='.$id.'&id='.$node;
$ret .= '<a class="title" target="_blank" href="'.$href.'">Last Update: <u>' . date("F j, Y",strtotime($item->created_time)) . '</u></a>';
if($item->type == 'photo'){
$ret .= '<div class="fb_img"><a target="_blank" href="'.$href.'"><img src="'.$item->picture.'"/></a></div>';
}
$ret .= "<p class=\"msg\">";
$ret .= $message;
$ret .= "</p>";
$ret .= "<p class='likes'><a htarget=\"_blank\" href=\"$href\">$likes</p>";
$ret .= "</div>";
return $ret;
}