2012-01-27 12 views
1

私は画像を選択するFacebook上のアプリケーションを持っており、アプリケーションに関連付けられたアルバムにアップロードできます。Facebookでアプリケーションのアルバムに画像を投稿するapi

私はそれについていくつかのコードを見つけましたが、今までは自分の個人アカウントにしかアップロードできませんでした。私は、アプリケーションのすべてのアルバムの詳細を取得することができ、このコードでは

$facebook->api('/app_id/albums?access_token='.$acces_token); 

クールだ、私はリストを取得しますが、この後、私は次の操作を行います

$upload_photo = $facebook->api('/'.$album_id.'/photos?access_token='.$acces_token, 'post', $photo_details); 

そして、 致命的なエラー:未知OAuthException:(#100)投げられたアルバム所有者のIDが無効です

何が問題なのですか? 私は正しい権限を持っていない可能性がありますか?または私は何かを逃していますか?

私もこれを試してみました:

$create_album = $facebook->api('/app_id/albums?access_token='.$acces, 'post', $album_details); 
$album_uid = $create_album['id']; 
$upload_photo = $facebook->api('/'.$album_uid.'/photos?access_token='.$acces, 'post', $photo_details); 
+0

こんにちはAndrás、これをやりましたか?私は今、同じことをしようとしています。ありがとう! –

+0

こんにちは、エラーの原因を見つけましたか?私もそれに固執しています.. 私は決定できません..あまりにも多くのaccess_tokensがあります。 1.アプリケーションの場合、ページの1 .. – Prashant

答えて

0

これを試してみてください!!新しいアルバムを作成し、そのアルバムに写真を投稿します。

$post_login_url = "http://apps.facebook.com/yourapp/thefile"; 
    $album_name = 'name of Album'; 
    $album_description = 'something about album'; 


    $code = $_REQUEST["code"]; 
$facebook->setFileUploadSupport(true); 
    //Obtain the access_token with publish_stream permission 
    if(empty($code)) 
    { 
     $dialog_url= "http://www.facebook.com/dialog/oauth?" 
     . "client_id=" . $app_id 
     . "&redirect_uri=" . urlencode($post_login_url) 
     . "&scope=publish_stream"; 
     echo("<script>top.location.href='" . $dialog_url . 
     "'</script>"); 
    } 
    else { 
    $token_url= "https://graph.facebook.com/oauth/" 
    . "access_token?" 
    . "client_id=" . $app_id 
    . "&redirect_uri=" . urlencode($post_login_url) 
    . "&client_secret=" . $app_secret 
    . "&code=" . $code; 
    $response = file_get_contents($token_url); 
    $params = null; 
    parse_str($response, $params); 
    $access_token = $facebook->getAccessToken(); 

    // Create a new album 
    $graph_url = "https://graph.facebook.com/me/albums?" 
    . "access_token=". $access_token; 

    $postdata = http_build_query(
    array(
     'name' => $album_name, 
     'message' => $album_description 
     ) 
    ); 
    $opts = array('http' => 
    array(
     'method'=> 'POST', 
     'header'=> 
     'Content-type: application/x-www-form-urlencoded', 
     'content' => $postdata 
    ) 
    ); 
    $context = stream_context_create($opts); 
    $result = json_decode(file_get_contents($graph_url, false, 
     $context)); 

    // Get the new album ID 
    $album_id = $result->id; 

    //Show photo upload form and post to the Graph URL 
    $graph_url = "https://graph.facebook.com/". $album_id 
     . "/photos?access_token=" . $access_token; 
    echo '<html><body>'; 
    echo '<form enctype="multipart/form-data" action="' 
    .$graph_url. ' "method="POST">'; 
    echo 'Adding photo to album: ' . $album_name .'<br/><br/>'; 
    echo 'Please choose a photo: '; 
    echo '<input name="source" type="file"><br/><br/>'; 
    echo 'Say something about this photo: '; 
    echo '<input name="message" type="text" 
     value=""><br/><br/>'; 
    echo '<input type="submit" value="Upload" /><br/>'; 
    echo '</form>'; 
    echo '</body></html>'; 
    } 

?> 
+1

Thx、それは私の欲しいことをしない、これは私の個人的なページでそれを作成し、私がしたいアプリケーションページでそれを作成することです:) – ghostika

関連する問題