Facebook - Как загрузить фото через URL? - PullRequest
4 голосов
/ 22 марта 2012

Например, у меня на моем сайте установлен WordPress.Я хочу загрузить картинки на Facebook через URL.URL моего изображения:

http://example.com/wp-content/abc123.jpg

Теперь я хочу загрузить это изображение на Facebook через мой собственный веб-сайт прямо в определенный альбом.Я полностью N00b!Так что ничего не знаю о кодировании ..

Моя цель - создать обложку сайта.

* ВТОРОЕ ОБНОВЛЕНИЕ *: Воткод, который я использую сейчас:

  <?php
      $app_id = "12354";
      $app_secret = "1213243434";
      $post_login_url = "http://example.com/sdsds";
      $album_id = "1234224";
      $photo_url = "http://example.coom/test.jpg";
      $photo_caption = "my caption";

  $code = $_REQUEST["code"];

  //Obtain the access_token with publish_stream permission 
  if (!$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
      . "&client_secret=" . $app_secret
      . "&redirect_uri=" . urlencode( $post_login_url)
      . "&code=" . $code;
    $response = file_get_contents($token_url);
    $params = null;
    parse_str($response, $params);
    $access_token = $params['access_token'];

    // POST to Graph API endpoint to upload photos
    $graph_url= "https://graph.facebook.com/" 
      . $album_id . "/photos?"
      . "url=" . urlencode($photo_url)
      . "&message=" . urlencode($photo_caption)
      . "&method=POST"
      . "&access_token=" .$access_token;

    echo '<html><body>';
       echo file_get_contents($graph_url);

    echo '</body></html>';
  }
?>

Так что из этого кода я могу загрузить «test.jpg» на Facebook, но теперь проблема в том, что я не хочу загружать только одно изображение, яхочу загрузить много изображений, поэтому я не хочу менять "$ photo_url =" http://example.coom/test.jpg";" этот код для новых фотографий, любая помощь будет благодарна!

1 Ответ

4 голосов
/ 22 марта 2012

Вы не можете загрузить фотографию с URL-адреса, она даже не считается "загрузкой", поскольку вы на самом деле не загружаете фотографию, просто укажите URL-адрес.

Что вам нужно сделать, так эточтобы получить фактические данные изображения и отправить их себе в Facebook через POST-запрос к этому URL:

https://graph.facebook.com/ALBUM_ID/photos

с параметрами: message и source .

Если у вас нет локального изображения на сервере, вам нужно будет загрузить его, прочитать его содержимое и затем опубликовать на Facebook.


Редактировать

Благодаря комментарию @TommyBs, я вижу, что невозможно загрузить через URL.Я оставлю ответ, так как он говорит об альтернативе.


2nd Edit

Если вы хотите загрузить несколько изображений, у вас есть 2 варианта (как я вижу):

(1) Используйте Пакетные запросы , предоставленные Facebook.Вам нужно будет проверить, работает ли этот конкретный метод, я понятия не имею, поскольку я никогда не пытался загрузить изображение на Facebook с помощью URL.

(2) Отправить запрос на изображение, что-то вроде:

function uploadPicture($albumId, $photoUrl, $message, $token) {
     $url= "https://graph.facebook.com/" 
        . $albumId . "/photos?"
        . "url=" . urlencode($photoUrl)
        . "&message=" . urlencode($message)
        . "&method=POST"
        . "&access_token=" . $token;

     return file_get_contents($url);
}

Затем просто используйте эту функцию с другими параметрами.

...