我想知道当我通过图形API上传到facebook时,如何获取图像网址或除id之外的任何其他数据。我试图从Graph API Explorer获取图像数据,但它给了我false
。当我将access_token
与user_photos
放在一起时,它会向我提供详细信息。但是,我可以从$facebook->getAccessToken();
获取的默认访问令牌仍然可以false
。
所以我的问题是 - 我将图像数据上传到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.";
}
}
答案 0 :(得分:2)
您应该在回复中找到id
上传的照片(在您的情况下为$data
),使用id
简单调用Graph API会返回所有您想要的信息。< / p>
$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'];
更新:您应该要求user_photos
阅读photo
对象详细信息。