Facebook PHP SDK:Post 将照片附加到粉丝专页

Facebook PHP SDK: Post attached photo to fanpage

在我的工作代码中 post 一条带有 url 图像的消息,我有这个设置:

   $post_data = array(
    'message' => 'nice kitten pic',
    'url' => 'http://www.eastcottvets.co.uk/uploads/Animals/gingerkitten.jpg'
    );
   $request = new FacebookRequest($app, $access_token, 'POST', '/' . $page_id . '/photos', $post_data);

我试过这个,但不起作用:

$post_data = array(
    'message' => 'nice kitten pic',
    'source' => realpath('pics/kitten.jpg')
    );

但现在我喜欢 post 一张图片,而不是 url 引用,而是引用我本地主机上的图片路径。 Facebook 文档说:

"将照片发布到 Facebook 有两种不同的方式: 1:附上照片multipart/form-data。对象的名称无关紧要,但历史上人们使用 source 作为照片的参数名称。这是如何工作的取决于您碰巧用来执行 post 的 SDK。 2:通过使用 url 参数发布来使用互联网上已有的照片:"

所以,方式 Nr.2 有效,但我如何使用方式 nr.1,"attach the photo as multipart/form-data"? - 该文档包含 php sdk 的示例和一般示例。

the docu laks an example for php sdk and in general.

不,它没有——你只是错过了它:https://developers.facebook.com/docs/php/howto/example_upload_photo

与您的问题最相关的部分是使用 fileToUpload 准备要上传的本地文件。

解决方案,对于那些也可能会搜索的人:

  $post_data = array(
    'message' => 'nice kitten pic',
    'source' => $fb->fileToUpload('/var/www/myPublicToTheWebFolder/kitten.jpg'),
  );

当然路径会有所不同,具体取决于服务器设置。但它必须是你必须在那里输出的完整路径。