0

我正在使用 facebook sdk,并希望我们的用户能够将图像发布到他们的相册,但不能上传图像。

本质上,我们为登录用户提供了一个动态页面,可以动态创建动态图像。

检查 facebook SDK ,如果我允许用​​户“上传”图像,我可以让一切正常工作,但我无法弄清楚如何附加网页上已经存在的图像..

例如。假设页面上的图像是https://stackoverflow.com/images/my_image.jpg

在 facebook SDK 中:(截断代码) - 用于上传图片

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

     // Show photo upload form to user and post to the Graph URL
     $graph_url= "https://graph.facebook.com/me/photos?"
     . "access_token=" .$access_token;

     echo '<html><body>';
     echo '<form enctype="multipart/form-data" action="'
     .$graph_url .' "method="POST">';
     echo 'Please choose a photo: ';
     echo '<input name="source" type="file"><br/><br/>';
     echo 'Say something about this photo: ';
     echo '<input name="message" 
         type="text" value=""><br/><br/>';
     echo '<input type="submit" value="Upload"/><br/>';
     echo '</form>';
     echo '</body></html>';

所以我的问题是,有没有办法我们可以发送特定图像,而不是在上述表格中上传图像?

这可能是人类已知的最明显的问题,我只是用谷歌的眼光试图弄清楚。

4

1 回答 1

1

您只能以这种方式发布指向图像的链接。如果您想将实际图像发布到 Facebook,您必须先将图像下载到您的服务器。

像这样简单的东西file_get_contents(PATH_TO_IMAGE)就可以了。将文件发布到 Facebook 后,您始终可以从服务器中删除该文件。

这里有一些方法详细介绍了如何在没有文档中提供的上传表格的情况下上传照片。

于 2013-02-24T23:49:33.310 回答