(PHP)未经许可获取AccessToken和提要。(索塔)

(PHP)未经许可获取AccessToken和提要。(索塔),php,facebook,feed,status,access-token,Php,Facebook,Feed,Status,Access Token,我正在开一个博客,我想为这个博客制作一个“FacebookStatusApp”。 它所要做的就是获取我的最新状态,并将请求发送到我的翻译页面。 我可以获取最新的提要,但问题是accesstoken。 我找到了一种方法,每9分钟刷新一次我的访问令牌。这是一个叫做: 此站点将每X分钟调用一次您的url。我选择了9分钟 我的续费代码非常简单: <?php $file = file_get_contents("fbat.txt"); $token = $file; $token_url = "

我正在开一个博客,我想为这个博客制作一个“FacebookStatusApp”。 它所要做的就是获取我的最新状态,并将请求发送到我的翻译页面。 我可以获取最新的提要,但问题是accesstoken。 我找到了一种方法,每9分钟刷新一次我的访问令牌。这是一个叫做:

此站点将每X分钟调用一次您的url。我选择了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

但我需要一个客户的秘密。 我无法为我的facebook帐户获取AccessToken:/

因此,我的解决方案是使用我的ClientID和他的ClientSecret以及“图形浏览器”创建一个新的应用程序,以生成访问令牌

所以我的问题是: 如何获取我的最新状态和访问令牌

如果有一个好的选择(例如使用应用程序),我也可以这样做


嗯,我希望你理解我的问题:首先,你的提要需要公开。以下代码应完成其余操作:

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;

}
功能fb_设置(){
$app_id='app_id';
$app_secret='app_secret';
$response=file\u get\u contents($response)https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=“.$app\u id.&client\u secret=”.$app\u secret);
$token=str_replace('access_token=','',$response);
$node=“PAGE_ID(如果不是页面,请使用'me')”;
$fields=array();
$fields[]='feed';
$fields[]=“喜欢”;
$response=file\u get\u contents($response)https://graph.facebook.com/“.$node.”字段=”.内爆(“,”,$fields)。“&access_-token=“.$token.”);
$arr=json_decode($response);
$data['node']=$node;
$data['arr']=$arr;
返回$data;
}
函数last_post(){
$ret=fb_设置();
$arr=$ret['arr'];
$node=$ret['node'];
$feed=$arr->feed->data;
$ret=“”;
$ret.=”;
$item=$feed[0];
$message=str\u replace(“\n”,“

”,$item->message); $likes=(!$item->likes->count)?'0':$item->likes->count; $coms=$item->comments->count; $ex_id=分解(“”,$item->id); $id=$exu id[1]; $href='1http://www.facebook.com/permalink.php?story_fbid=“.$id.”&id=”.$node; $ret.=''; 如果($item->type=='photo'){ $ret.=''; } $ret.=“

”; $ret.=$message; $ret.=“

”; $ret.=“”; $ret.=”; 返回$ret; }
首先,您的提要需要公开。以下代码应完成其余操作:

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;

}
功能fb_设置(){
$app_id='app_id';
$app_secret='app_secret';
$response=file\u get\u contents($response)https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=“.$app\u id.&client\u secret=”.$app\u secret);
$token=str_replace('access_token=','',$response);
$node=“PAGE_ID(如果不是页面,请使用'me')”;
$fields=array();
$fields[]='feed';
$fields[]=“喜欢”;
$response=file\u get\u contents($response)https://graph.facebook.com/“.$node.”字段=”.内爆(“,”,$fields)。“&access_-token=“.$token.”);
$arr=json_decode($response);
$data['node']=$node;
$data['arr']=$arr;
返回$data;
}
函数last_post(){
$ret=fb_设置();
$arr=$ret['arr'];
$node=$ret['node'];
$feed=$arr->feed->data;
$ret=“”;
$ret.=”;
$item=$feed[0];
$message=str\u replace(“\n”,“

”,$item->message); $likes=(!$item->likes->count)?'0':$item->likes->count; $coms=$item->comments->count; $ex_id=分解(“”,$item->id); $id=$exu id[1]; $href='1http://www.facebook.com/permalink.php?story_fbid=“.$id.”&id=”.$node; $ret.=''; 如果($item->type=='photo'){ $ret.=''; } $ret.=“

”; $ret.=$message; $ret.=“

”; $ret.=“”; $ret.=”; 返回$ret; }
Ah,我将应用程序更改为在GrapherXPlorer中使用,然后生成了一个密钥。这管用!再生工程。但是当我注销时accesstoken会丢失吗?啊,我将应用程序更改为在graphExplorer中使用,然后生成了一个密钥。这管用!再生工程。但是当我注销时accesstoken会丢失吗?我理解你所做的。但您不能在httpS://链接上使用:file\u get\u内容。所以我将使用curl。谢谢好的,我有个问题。我可能说错了,但我需要一个“状态”字段,这个字段并不容易:/我已经成功地创建了一个工作字段,但由于某些原因它没有更新。我如何向您发送源代码?顺便说一句:它只在网络主机上不更新。这在我当地的机器上能引起注意吗?您可以使用带有https链接的文件获取内容,尝试
ini\u set('allow\u url\u fopen',1)在调用函数之前。我理解你所做的。但您不能在httpS://链接上使用:file\u get\u内容。所以我将使用curl。谢谢好的,我有个问题。我可能说错了,但我需要一个“状态”字段,这个字段并不容易:/我已经成功地创建了一个工作字段,但由于某些原因它没有更新。我如何向您发送源代码?顺便说一句:它只在网络主机上不更新。这在我当地的机器上能引起注意吗?您可以使用带有https链接的文件获取内容,尝试
ini\u set('allow\u url\u fopen',1)操作。