2012-01-30 17 views
3

グラフAPIを使用してFacebookにアップロードするときに、画像URLやID以外のデータを取得する方法を知りたいと思います。 Graph API Explorerから画像データを取得しようとしましたが、それは私にfalseを与えます。私がaccess_tokenuser_photosと置くと、詳細がわかります。しかし、私が$facebook->getAccessToken();から得ることができるデフォルトのアクセストークンは、私にはまだfalseを与えます。Facebook API - アップロード後に画像URLを取得する

私の質問は次のとおりです。 - イメージデータをFacebookにアップロードしたら、どうすれば入手できますか?

<?php 

require 'fb/src/facebook.php'; 

if ($_FILES["file"]["error"] == 0) 
{ 
    // Getting 
    $file = $_FILES["file"]; 
    $fileExtension = $imgExtension = end(explode(".", $file["name"])); 
    $upload_dir = "upload/"; 

    // Modifying 
    $newName = md5(uniqid()) . "." . $fileExtension; 

    // Checking if this name already exists 
    while (file_exists($upload_dir . $newName) == true) 
    { 
     $newName = md5(uniqid()) . "." . $fileExtension; 
    } 

    // Uploading 
    if (move_uploaded_file($file['tmp_name'], $upload_dir . $newName) == true) 
    { 
     $facebook = new Facebook(array(
        'appId' => 'app id', 
        'secret' => 'app secret', 
       )); 

     $facebook->setFileUploadSupport(true); 
     $args = array(
      "message" => "test caption" 
     ); 

     $args['image'] = '@' . realpath($upload_dir . $newName); 

     $data = $facebook->api('/me/photos', 'post', $args); 
     print_r($data); 
    } 
    else 
    { 
     echo "Error."; 
    } 
} 

答えて

2

あなたは(あなたのケースで$data)応答でアップロードされた写真のidを取得する必要があり、あなたに必要なすべての情報を返すことidでAPIをグラフ化するための簡単なコール:

は、ここに私のコードです。

$data = $facebook->api('/me/photos', 'post', $args); 
$photo_data = json_decode($data, true); 
$photo = $facebook->api('/'.$photo_data['id']); 

$thumbnail = $photo['picture']; 
$large_photo = $photo['source']; 
$photo_page = $photo['link']; 

更新:あなたはphotoオブジェクトの詳細を読むためにuser_photosを要求すべきです。

+0

私がそれを好きにしようとすると、何も返されません。 – sed

+0

あなたの写真のIDがアップロードされましたか? [OpenGraph Explorerツール](http://developers.facebook.com/tools/explorer)がその「id」を返すのは何ですか? –

+0

「false」を返します。 'user_photos'を有効にしてaccess_tokenを入力したときに限り、私は画像データを取得します。 – sed

関連する問題