Facebook API - Получить URL изображения после его загрузки - PullRequest
3 голосов
/ 30 января 2012

Я хотел бы знать, как получить URL-адрес изображения или любые другие данные, кроме идентификатора, когда я загружаю его в Facebook через API Graph. Я пытался получить данные изображения из 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.";
    }
}

1 Ответ

2 голосов
/ 30 января 2012

Вы должны получить id загруженной фотографии в ответе ($data в вашем случае), простой вызов Graph API с этим id должен вернуть вам всю необходимую информацию.

$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 сведения об объекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...