在我的工作代码中,要发布带有基于 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')
);
但是现在我喜欢发布图像,不是带有 url 引用,而是引用我本地主机上图像的路径。脸书文档 说:
"将照片发布到Facebook有两种不同的方式:1:将照片附加为多部分/表单数据。对象的名称并不重要,但历史上人们一直使用 source 作为照片的参数名称。它的工作原理取决于您碰巧用来发布帖子的 SDK。2:通过使用 url 参数发布来使用已经在互联网上的照片:"
所以,方式 Nr.2 有效,但我如何使用方式 nr.1,"将照片附加为多部分/表单数据"?? -文档提供了 php sdk 和一般示例。
文档提供了PHP SDK和一般示例。
不,它没有 - 你只是错过了它: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'),
);
当然,路径会有所不同,具体取决于服务器设置。 但它必须是您必须在那里输出的完整路径。