2013-06-06 45 views
0

没有登录FB帐户发布照片是否是真的?我阅读了关于access_token的信息,并且它使用简单的墙贴信息完成了工作,但是当我使用access_token发布照片而无需登录时,FB我总是会出错。请帮帮我。没有登录的发布照片

<?php 

    ini_set('display_errors', 'on'); 
    error_reporting(E_ALL); 

    require 'facebook-php-sdk-master/src/facebook.php'; 

    $photo = 'mma.jpg'; 
    $message = 'TEST MESSAGE'; 

    $facebook = new Facebook(array(
     'appId' => 'APP ID', 
     'secret' => 'APP_SECRET', 
     'fileUpload' => true, 
     'cookie' => true, 
    )); 

    $loginUrl = $facebook->getLoginUrl(array(
     'canvas' => 1, 
     'fbconnect' => 0, 
     'scope' => 'offline_access,publish_stream,photo_upload' 
    )); 

    $user = $facebook->getUser(); 
    if($user){ 
     echo $facebook->getAccessToken(); 
    } 
    $tokenac = $facebook->getAccessToken(); 


    $post = array(
     'access_token' => "$tokenac", 
     'message' => 'Test post' . date('Y-m-d H:i:s'), 

    ); 


    $res = $facebook->api('/10000******8933/feed', 'POST', $post); 
    echo 'ID: ',$res['id']; 

我试过这样,但它不工作。任何人都可以帮助请

require 'facebook-php-sdk-master/src/facebook.php'; 

$photo = 'mma.jpg'; 
$message = 'Nope, this message last after 10:2222 (test)'; 

$facebook = new Facebook(
    array(
    'appId' => '646351572060837', 
    'secret' => 'e4215791489cce26778ed02403a04427', 
    'fileUpload' => true, 
    'cookie' => true, 
    ) 
); 

$loginUrl = $facebook->getLoginUrl(
    array(
    'canvas' => 1, 
    'fbconnect' => 0, 
    'scope' => 'offline_access,publish_stream,photo_upload' 
    ) 
); 


$tokenac = $facebook->getAccessToken(); 


$res = $facebook->api(
    '/100001776698933/photos', 'POST', 
    array(
     'access_token' => $tokenac, 
     'source' => '@' . $photo, 
     'message' => $message, 
    ) 
); 
echo 'ID: ',$res['id']; 

总是与照片得到这个错误, 致命错误:未捕获OAuthException:需要提供用户访问令牌来请求该资源。抛出base_facebook.php在线1254

+0

即任何可以去,例如在我的网站管理员,选择照片并会publicated的Facebook页面上。 – kxc

+0

您正在调用方法getLoginURL,但是您没有对它返回的登录URL进行任何操作 - 必须将用户重定向到该URL才能让它们显示登录屏幕。并且'offline_access'不再可用,请将其从您要求的权限范围中移除。 – CBroe

+0

但是,为什么然后我拿取存取令牌?生病不想手动登录到FB,我想让它自动访问令牌。或者我不明白somethink?)我可以张贴照片自动从任何电脑,没有ACC登录像第一个代码,我发布消息墙?对不起英文不好 – kxc

回答

0

从用户帐户发布,需要一个有效的访问令牌,这意味着您需要登录。

在PHP SDK中,如果未提供登录名,则默认为应用程序访问令牌,即而不是用于发布到照片的有效用户访问令牌。

使用登录流程https://developers.facebook.com/docs/facebook-login/

+0

谢谢,与Facebook后的状态所有工作,我得到访问令牌不过期,所有的工作完美。但如何张贴照片,我怎么理解我需要其他访问令牌,我只能在登录后才能使用,但它会在1小时后过期。某处我看到我可以在其过期时将访问令牌更改为其他令牌,是真的吗? – kxc

+0

例如,在那里我可以手动拿下这个令牌,并且所有的工作都很完美,但只有1个小时。我可以如何自动将这个令牌带给其他人,或者将其改为+1小时或mby我可以带上无限令牌? – kxc