Publica una imagen en una pared de Facebook

No tengo la función de publicar un enlace a un muro de Facebook. Esto funciona como debería, solo la imagen que trato de adjuntar no aparece en la página.

¿Tengo que hacer algo especial para publicar una imagen?

public function shareAction() { include_once('/application/modules/social/services/facebook/facebook.php'); $request = $this->getRequest(); $this->_helper->getHelper('viewRenderer')->setNoRender(); $this->_helper->getHelper('layout')->disableLayout(); $return = 'ERROR'; if($request->isPost()) { $file = TOMATO_APP_DIR . DS . 'modules' . DS . 'social' . DS . 'config' . DS . 'config.ini'; $config = new Zend_Config_Ini($file); $config = $config->toArray(); // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(array( 'appId' => $config['facebook']['appId'], 'secret' => $config['facebook']['secret'], 'cookie' => true, )); $options = Array( 'access_token' => $config['facebook']['pageAccessToken'], 'link' => $request->getPost('link'), 'picture' => '@' . $request->getPost('picture'), 'name' => $request->getPost('name'), 'caption' => $request->getPost('caption'), 'description' => $request->getPost('description'), ); //Zend_Debug::dump($options); die(); $wallPost = $facebook->api('/me/feed', 'post', $options); $return = 'SUCCESS'; } echo $return; } 

Todo funciona como se espera excepto la imagen. Alguna idea de por qué por favor?

como Brent y akond mencionaron, el enlace de la imagen no debe ir precedido de ‘@’, debería ser una URL simple para una imagen (presumiblemente del tamaño de una miniatura). Este comando curl, por ejemplo, funciona:

 set +H # first turn off history expansion curl -F \ "picture=http://img.rephp.com/php/m146.gif" \ -F "message=you're looking great tonight!" \ -F "name=Current Moon Phase" \ -F "link=http://www.calculatorcat.com/moon_phases/phasenow.php" -F caption="How the moon appears tonight" \ -F "access_token=111111111111111|2222222222222222222222222|33333333333333333333456n" \ "https://graph.facebook.com/215958041750734/feed" 

Puedes ver el resultado en https://www.facebook.com/home.php#!/pages/The-Moon/215958041750734

actualización: no sé cómo funcionaba lo anterior sin el set +H , después @mlunoe señaló que el signo de exclamación está interpolado por el expansor de historial Bash. Probé con comillas simples y no resolvió el problema, así que encontré la solución set en https://unix.stackexchange.com/questions/33339/cant-use-exclamation-mark-in-bash