Разместить картинку на стене в фейсбуке - PullRequest
2 голосов
/ 22 декабря 2010

Я не могу опубликовать ссылку на 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;
}

Все работает как положено, кроме изображения. Есть идеи, почему, пожалуйста?

1 Ответ

2 голосов
/ 13 июня 2011

, как упоминали Брент и Аконд, ссылка на картинку не должна начинаться с префикса '@', это должен быть простой URL-адрес изображения (предположительно уменьшенного размера). Эта команда curl, например, работает:

set +H  # first turn off history expansion
curl -F \
     "picture=http://tycho.usno.navy.mil/gif/moons/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

обновление: я не знаю, как это работает без set +H, после того, как @mlunoe указал, что восклицательный знак интерполируется расширителем истории Bash. Я тестировал с одинарными кавычками и не решил проблему, поэтому нашел решение set на https://unix.stackexchange.com/questions/33339/cant-use-exclamation-mark-in-bash

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...