在我的工作代码中发布带有基于网址的图片的邮件,我有这样的设置:
$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 Docu说:
“将照片发布到Facebook有两种不同的方式: 1:将照片作为multipart / form-data附加。对象的名称无关紧要,但历史上人们使用source作为照片的参数名称。这是如何工作的取决于你碰巧用来做帖子的SDK。 2:使用url参数发布使用互联网上已有的照片:“
所以,Nr.2的方式有效,但我如何使用nr.1方式,“将照片作为multipart / form-data附加”? - 文档为php sdk提供了一个例子。
答案 0 :(得分:1)
该文档为php sdk提供了一个例子。
不,它没有 - 你错过了它:https://developers.facebook.com/docs/php/howto/example_upload_photo
与您的问题最相关的部分是使用fileToUpload
准备本地文件进行上传。
答案 1 :(得分:1)
解决方案,对于人们可能会搜索:
$post_data = array(
'message' => 'nice kitten pic',
'source' => $fb->fileToUpload('/var/www/myPublicToTheWebFolder/kitten.jpg'),
);
当然路径会有所不同,具体取决于服务器设置。但它必须是你必须在那里输出的完整路径。