2011-12-21 2 views
1

나는 액세스 토큰을 사용하여 이미지를 업로드하는 방법은 무엇입니까?

www.mysite.com/xyz.php?access_token=valid_access_token&id=1 

토큰 액세스 JQuery와에서이 URL을 만드는 오전 및 xyz.php

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

// Get User ID 
$user = $facebook->getUser(); 

$facebook->setFileUploadSupport(true); 
$args = array('message' => 'my_message'); 
       copy($image, 'tmp/file.jpeg'); 
       $args['image'] = '@' . realpath('tmp/file.jpeg'); 
       $data = $facebook->api('me/photos', 'post', $args); 
       unlink('tmp/file.jpeg'); 

에이 코드를 사용하고 사진을 업로드 할 수 있지만 작동하지 않습니다. 이 오류가 발생합니다.

Uncaught OAuthException: An active access token must be used to query information about the current user. 

액세스 토큰을 만들었습니다. 왜이 오류가 발생합니까? 내 코드의 accessToken (내 URL에 있음)을 사용하여 이미지를 업로드하려면 어떻게해야합니까?

답변

1

사용자를 대신하여 작업을 수행하려면 사용자의 액세스 토큰을 얻어야합니다. 다음 코드를 사용해보십시오 ...

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

// Get User ID 
$user = $facebook->getUser(); 

if (!$user) 
{ 
    // User is not logged in or hasn't added the application! 

    $login_url = $facebook->getLoginUrl(array(
     'scope' => 'publish_stream,user_photos,photo_upload', 
    )); 

    die('<script>top.window.location = "' . $login_url . '";</script>'); 
} 

$facebook->setFileUploadSupport(true); 
$args = array('message' => 'my_message'); 
       copy($image, 'tmp/file.jpeg'); 
       $args['image'] = '@' . realpath('tmp/file.jpeg'); 
       $data = $facebook->api('me/photos', 'post', $args); 
       unlink('tmp/file.jpeg');