2013-02-15 1 views
1

나는 블로그를 시작했고 블로그에 'FacebookStatusApp'을 만들고 싶었습니다. 내 최신 상태를 얻고 내 번역기 페이지에 요청하면됩니다. 최근 피드를 구할 수 있지만 문제는 accesstoken입니다. 9 분마다 내 access_token을 새로 고치는 방법을 찾았습니다. 이 사이트는 URL을 매 X 분을 호출합니다(PHP) 허가없이 AccessToken을 가져 와서 피드하십시오.

https://mywebcron.com/

: 그것은라는 사이트입니다. 나는 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이 필요합니다. 그리고 페이스 북 계정에 대한 AccessToken을 얻을 수 없습니다./

그래서 내 해결책은 'GRAPH EXPLORER'와 함께 내 ClientID와 HIS ClientSecret을 사용하여 access_token을 생성하는 새로운 앱을 만드는 것입니다.

제 질문은 : 어떻게 내 최신 상태와 내 access_token을 얻을 수 있습니까? ?

좋은 대안 (예 : APP 사용)이 있다면 그렇게 할 수도 있습니다. 피드는 공개 할 필요가, P 모든

+0

아, 그래프 어 플라이어에서 사용하도록 앱을 변경 한 다음 키를 생성했습니다. 이 작품! 그리고 중생하는 작품. 하지만 로그 아웃 할 때 액세스 기록이 없어지겠습니까? –

답변

1

첫째 :

글쎄, 난 당신이 내 질문을 이해 바랍니다. 아래 코드는 나머지를 처리해야합니다 :

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; 

} 
+0

당신이 한 일을 이해합니다. 하지만 http : // 링크에서 file_get_contents를 사용할 수는 없습니다. 그래서 저는 컬을 사용할 것입니다. 감사! –

+0

문제가 없습니다. 내가 잘못 말했을 수도 있지만 쉽게 갈 수없는 '상태'필드가 필요합니다 :/나는 그럭저럭 일할 수 있었지만 어떤 이유로 그것이 업데이트되지 않았습니다. 소스 코드를 보내려면 어떻게해야합니까? BTW : 그것은 단지 웹 호스트에서 업데이 트를하지 않습니다. 내 로컬 컴퓨터에서 수행합니다. –

+0

잡을만한 문제가 될 수 있습니까? 그리고 https 링크로 file_get_contents를 사용할 수 있습니다. 함수를 호출하기 전에'ini_set ('allow_url_fopen', 1);을 시도하십시오. – chrisboustead