0

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

$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)需要上传文件","type":"OAuthException","code":32

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

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

4

1 回答 1

1

但是当我收到错误 #324)需要上传文件","type":"OAuthException","code":32

我能知道是什么原因吗?

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

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

因此,要么你去研究一下如何multipart/form-data在 Google App Engine 提供给你的技术范围内发送数据;

或者……如果您的图像可以通过 HTTP 公开访问,您还可以将source参数切换为一个名为 的参数url,在该参数中您提供可检索图像的 HTTP URL。

于 2012-09-25T15:25:02.783 回答