无法通过Graph / CURL将图片发布到Facebook

时间:2012-05-08 03:25:27

标签: php facebook facebook-graph-api curl

这里有关于此的讨论,我已经尝试了所有的建议,但没有骰子。

每当我使用我的应用程序发布到FB墙时,一切都很顺利除了没有在墙上显示的darn图片附件。

我使用CURL如下

$attachment =  array(
    'access_token'  => $fb_user['access_token'],
    'message'       => $fb['post_text'],
    'link'          => $fb['post_url'],
    'name'          => $fb['post_title'],
    'description'   => 'bla',
    'picture'       => rawurlencode($fb['post_picture']),
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://graph.facebook.com/' . $fb_user['uid'] . '/feed');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  //to suppress the curl output
$result = curl_exec($ch);
curl_close($ch);

我确定你以前见过这段代码。无论如何,图片没有显示在墙上。

我通过FB linter运行图片网址,它返回200 ,但会出现一个似乎矛盾的错误

http://example.com/images/pictures/post/full/0367496d7569e6a85ec4d64af02f6b60.jpg
Response Code:  200
Errors That Must Be Fixed
Can't Download: Could not retrieve data from URL.

当然,我可以在浏览器上显示图像。并且图片路径上的所有文件夹均为755,图片本身为644

所以如果你有任何想法要向我投掷,请给我一个指针如何调试这个。欢迎提出任何意见。

感谢。

++++++++++++++++++++

$attachment =  array(
    'access_token'  => $fb_user['access_token'],
    'message'       => $fb['post_text'],
    'link'          => $fb['post_url'],
    'name'          => $fb['post_title'],
    'description'   => 'bla',
    'media'         => array(
                       'type' => 'image',
                       'src'  => rawurlencode($fb['post_picture']),
                       'href' => $fb['post_url'],
                       ),
);

1 个答案:

答案 0 :(得分:1)

编辑:以下答案适用于“发布流”而非“Feed”。

所以不回答这个问题。

对不起,

罗布


您需要将图片包含在“媒体”中 - 因此您的数据阵列错误。

这是我的Javascript - 与PHP相同的结构。

  attachment: {
    name: name,
    caption: caption,
    description: description,
    href: link ,
    media: [{
      type: 'image',
      src: picture,
      href: link
    }]
  },