php:将照片上传到脸谱墙的替代方式

时间:2012-09-25 14:10:16

标签: php google-app-engine facebook-graph-api

我使用下面的代码通常在墙上张贴照片

$attachments = array( 
            'message' => $mess,
             'access_token' => $access_token
          );
$facebook->setFileUploadSupport(true);
$attachments['image'] ='@'.realpath($filename);
$photoz = $facebook->api('/'.$aid.'/photos', 'POST', $attachments);

我使用谷歌应用引擎,所以上面不会工作,所以我按照下面的方法

  $filename ="prof.jpg";
  $im ='@'.realpath($filename);
   $post = "https://graph.facebook.com/".$aid."/photos?access_token=".$access_token."&message=hellohi&source=".$im."&method=POST";
 $upload = fetch_url($post);
    echo $upload;

但是当我收到错误#324)需要上传文件“,”输入“:”OAuthException“,”code“:32

我能知道是什么原因吗?我错在哪里?

p.s - $ im返回@ / base / data / home / apps / s~myphotoapp / 1.362007154292719350 / prof.jpg

1 个答案:

答案 0 :(得分:1)

  

但是当我收到错误#324)需要上传文件“,”输入“:”OAuthException“,”code“:32

     

我能知道是什么原因吗?

简单:您没有实际上将文件上传为HTTP上传。

数据必须以称为multipart/form-data的格式进行编码 - 而您只是将参数放入URL,这是不同的。

因此,您可以进行一些研究,如何在Google App Engine为您提供的技术范围内以multipart/form-data发送数据;

或...如果您的图片可以通过HTTP公开访问,您还可以为名为source的参数切换url参数,在该参数中您可以提供可以检索图像的HTTP URL。 / p>