2011-12-21 9 views
1

私はアクセストークンを使用して画像をアップロードするにはどうすればよいですか?

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

と私は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'); 

にこのコードを使用していますが、それは動作しません写真をアップロードするためのアクセストークンとjqueryのからこのURLを作成しています。このエラーが発生する

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

私はアクセストークンを作成しました。なぜこのエラーが発生していますか? 私のコードで私のURLにあるaccessTokenを使って画像をアップロードするにはどうしたらいいですか?

答えて

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'); 
関連する問題