У меня есть функция для публикации ссылки на Facebook-стену. Это работает так, как должно, только изображение, которое я пытаюсь прикрепить к нему, не отображается на странице.
Должен ли я делать что-то особенное для публикации изображения?
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; }
Все работает как ожидалось, кроме изображения. Любая идея, почему, пожалуйста?
как упоминал Брент и Аконд, ссылка на изображение не должна иметь префикс «@», это должен быть простой URL-адрес для изображения (предположительно эскиза). Например, эта команда curl работает:
set +H # first turn off history expansion curl -F \ "picture=http://img.ruphp.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"
вы можете увидеть результат на странице https://www.facebook.com/home.php#!/pages/The-Moon/215958041750734
update: Я не знаю, как это работает без set +H
, после того как @mlunoe указал, что восклицательный знак интерполируется расширителем истории Bash. Я тестировал с одинарными кавычками и не решал проблему, поэтому нашел set
решение на https://unix.stackexchange.com/questions/33339/cant-use-exclamation-mark-in-bash