2012-09-07 3 views
0

사용자가 현재 로그인하지 않은 경우에도 앱을 사용하여 페이스 북의 친구 벽/타임 라인에 게시 할 수 있습니까? 다음은 현재 작업중인 코드입니다. 친구의 벽에 메시지를 게시하는 것을 볼 수 있습니다 (friend_id를 실제 프로필 ID로 대체). 이 작동하지만 사용자가이 작업을 수행하려면 로그인해야합니다. 사용자 개입없이이 스크립트를 자동으로 실행하려면 어떻게해야할지 모르겠다.페이스 북을 사용하여 친구의 벽에 자동으로 게시하는 방법 PHP SDK

<?php 
require 'php_sdk/src/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => 'XXX', 
    'secret' => 'XXX', 
)); 

$session = $facebook->getUser(); 
$me = null; 

if($session){ 
    try{ 
     $me = $facebook->api('/me'); 

     $facebook->api('/friend_id/feed', 'post', array('message'=>'hello without user!')); 

    }catch(FacebookApiException $e){ 
     echo $e->getMessage(); 
    } 
} 

if($me){ 
    $logoutUrl = $facebook->getLogoutUrl(); 
    echo "<a href='$logoutUrl'>Logout</a>"; 
}else{ 
    $loginUrl = $facebook->getLoginUrl(array(
     'scope' => 'user_about_me,user_birthday,user_location,email,read_friendlists,friends_location,friends_birthday,publish_stream' 
    )); 
    echo "<a href='$loginUrl'>Login</a>"; 
} 
?> 

아이디어가 있으십니까? 코드 샘플과이 문서가 어떻게 작동하는지에 대한 아이디어를 얻는 데 도움이되는 특정 문서에 대한 링크는 크게 감사드립니다! 사용자가 로그인 할 때

답변

2

, 당신은 당신이

토큰이 유효합니다

$facebook = new Facebook(array( 
    'appId' => 'XXX', 
    'secret' => 'XXX', 
)); 

// NOTE: wrap these in try/catch blocks for safety - this is example only 
$facebook->setAccessToken($access_token); 
// Then check /me and you should still have the same user. 
// Then post to /me/feed to post to the wall. 
액세스 토큰을 사용, 자신의 "액세스 토큰"

$facebook = new Facebook(array( 
    'appId' => 'XXX', 
    'secret' => 'XXX', 
)); 

// NOTE: wrap these in try/catch blocks for safety - this is example only 
$session = $facebook->getUser(); 
$access_token = $facebook->getAccessToken(); 

나중에로 게시하려면 트랩 필요 2 일 동안. 원하는 경우 60 일까지 연장 할 수 있습니다.


편집 : 토큰을 exenteding를 들어, 당신은 즉시 "getAccessToken"호출하기 전에 기능을

$facebook->setExtendedAccessToken(); 

를 호출합니다.

+0

감사합니다. 그러나 어떻게 연장합니까? – user225269

+0

답변에 추가되었습니다. 여분의 코드가 한 줄만 표시됩니다 (오류가 발생하는 경우 최신 Facebook SDK가 있는지 확인하십시오 - 최근에 추가됨). – Robbie

관련 문제