【问题标题】:Facebook - How to Upload Photo Via URL?Facebook - 如何通过 URL 上传照片?
【发布时间】:2012-03-22 07:36:45
【问题描述】:

例如,我在我的网站上安装了 WordPress。我想通过 URL 上传 Facebook 上的图片。我的图片网址是:

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";"新照片的此代码任何帮助将不胜感激!

【问题讨论】:

标签: facebook upload photo


【解决方案1】:

您不能从 url 上传照片,它甚至不被视为“上传”,因为您实际上并没有上传图片,只需指向 url。

您需要做的是获取实际的图像数据,并通过对此 url 的 POST 请求将其发送到 Facebook:

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

带有参数:messagesource

如果您在服务器本地没有图像,则需要下载它,阅读其内容,然后将其发布到 facebook。


编辑

感谢@TommyBs 的评论,我发现可以通过 url 上传。 我会留下答案,因为它谈到了替代方案。


第二次编辑

如果你想上传几张图片,你有两个选择(我认为):

(1) 使用 facebook 提供的Batch Requests。 您必须测试它是否适用于这种特定方法,我不知道,因为我从未尝试使用 url 将图像上传到 facebook。

(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);
}

然后只需使用不同的参数重用这个函数。

【讨论】:

  • 是的,它很隐蔽,我只记得我看过一次。实际上,有人在 facebook 上提出了一个错误,说明它不在他们的文档中,所以希望它最终会被记录在案!
  • 好的,感谢大家的帮助,特别是@TommyBs 的代码 :) 现在我可以将照片上传到 Facebook。但现在我只想知道如何从同一个代码上传这么多照片。这是我正在使用的代码
  • 我不能说我明白你想要什么。请试着解释得更好一点。另外,请使用添加的代码编辑您的原始问题,使其可读。
  • 我可以将“test.jpg”上传到 facebook 但现在的问题是我不想只上传一张图片,我想上传很多图片所以我不想更改 "$photo_url = "example.coom/test.jpg";" 此代码用于新照片,任何帮助将不胜感激!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多