2013-06-06 2 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']; 

나는 이런 식으로 시도했지만 작동하지 않습니다. catch되지 않은 OAuthException을 : 사람이

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']; 
항상

사진과 함께이 오류, 치명적인 오류를 기쁘게 도울 수있는 사용자 액세스 토큰이 자원을 요청해야합니다. base_facebook.php in line 1254

+0

를 사용합니다. – kxc

+0

getLoginURL 메소드를 호출 중이지만 반환하는 로그인 URL이없는 것은 아닙니다. 로그인 화면이 표시되도록 사용자를 해당 URL로 리디렉션해야합니다. 그리고'offline_access'는 더 이상 사용할 수 없으므로 요청한 권한 범위에서 제거하십시오. – CBroe

+0

하지만 그때 내가 무슨 액세스 토큰을 가져 가니? 아픈가 수동 로그인 fb에 싶지 않아, 나는 그것을 액세스 토큰과 함께 자동으로 만들고 싶다. 아니면 내가 뭔가를 이해하지 못했습니까?) 내가 벽에 메시지를 게시하는 첫 번째 코드에서처럼 로그인하지 않고도 PC에서 자동으로 사진을 게시 할 수 있습니까? 죄송합니다 나쁜 영어 – kxc

답변

0

사용자 계정에서 게시하려면 유효한 액세스 토큰이 필요합니다. 즉, 로그인해야합니다.

PHP SDK에서 로그인이 제공되지 않으면 응용 프로그램 액세스 토큰이 기본값 인 이 아닌 사진에 게시 할 수있는 유효한 사용자 액세스 토큰이됩니다.

는, 내 웹 관리자에서, 예를 들어 가서 사진을 선택하고이 페이스 북 페이지에 publicated 할 수있는 로그인 흐름 https://developers.facebook.com/docs/facebook-login/

+0

감사합니다. 페이스 북의 상태가 모두 작동하므로 만료되지 않는 액세스 토큰을 받고 모든 작업이 완벽합니다. 하지만 사진 게시 방법은 내가 로그인 한 후에 만 ​​가져갈 수있는 다른 액세스 토큰이 필요하다는 것을 알았지 만 1 시간 후에 만료됩니다. 어딘가에 만료 될 때 다른 사람에게 액세스 토큰을 변경할 수 있음을 알았습니까? – kxc

+0

예를 들어, 수동으로이 토큰을 가져올 수 있으며 모든 작업이 완벽하지만 1 시간 밖에 걸리지 않습니다. 어떻게하면 +1 토큰이나 mby가 무한 토큰을 사용할 수있는 다른 토큰으로 자동화 할 수 있습니까? – kxc

관련 문제