2013-06-06 44 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