php:将照片上传到facebook墙的替代方法

php:将照片上传到facebook墙的替代方法,php,google-app-engine,facebook-graph-api,Php,Google App Engine,Facebook Graph Api,我通常用下面的代码在墙上贴一张照片 $attachments = array( 'message' => $mess, 'access_token' => $access_token ); $facebook->setFileUploadSupport(true); $attachments['image'] ='@'.realpath($filename); $photoz = $facebook->

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

$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)需要上传文件,“键入”:“OAutheException”,“code”:32

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

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

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

我能知道原因吗

简单:您实际上并没有将文件作为HTTP上载进行上载

数据必须以称为
multipart/formdata
的格式进行编码,而您只是将参数放入一个URL中,这是不同的

因此,要么你去做一些研究,如何在Google App Engine提供的技术范围内以
多部分/表单数据的形式发送数据

或者…如果您的图像可以通过HTTP公开访问,您还可以切换名为
url
的参数的
source
参数,在该参数中,您给出了可检索图像的HTTP url