Facebook Dashboard API .... не использовать его: | - PullRequest
0 голосов
/ 27 января 2010

Этот вопрос касается Dashboard.addNews и Dashboard.publishActivity

Facebook сообщил общественности о своем новом API Dashboard, однако не предоставил никаких обновлений в своей библиотеке для использования нового кода.

Так что я последовал совету в этой ссылке http://forum.developers.facebook.com/viewtopic.php?pid=197753 добавить новые функции в facebookapi_php5_restlib.php

//dashboard functions
  public function dashboard_addNews($uid, $news, $image = null) { 
    return $this->call_method('facebook.dashboard.addNews',
                              array('uid' => $uid,
                                    'news' => $news,
                                    'image' => $image));
  }

  public function dashboard_multiAddNews($uids, $news, $image = null) { 
    return $this->call_method('facebook.dashboard.multiAddNews',
                              array('uids' => $uids ? json_encode($uids) : null,
                                    'news' => $news,
                                    'image' => $image));
  }

  public function dashboard_addGlobalNews($news, $image = null) {
    return $this->call_method('facebook.dashboard.addGlobalNews',
                              array('news' => $news,
                                    'image' => $image));
  }

  public function dashboard_publishActivity($activity, $image = null) {
    return $this->call_method('facebook.dashboard.publishActivity',
                              array('activity' => $activity,
                                    'image' => $image));
  }

  public function dashboard_multiIncrementCount($uids) {
    return $this->call_method(
      'facebook.dashboard.multiIncrementCount', array('uids' => json_encode($uids)));
  }

  public function dashboard_removeActivity($activity_ids) {
    return $this->call_method(
      'facebook.dashboard.removeActivity', array('activity_ids' => json_encode($activity_ids)));
  }

  public function dashboard_setCount($uid, $count) {
    return $this->call_method('facebook.dashboard.setCount',
                              array('uid' => $uid,
                                    'count' => $count));
  }

Но теперь, когда я следую примеру кода на http://wiki.developers.facebook.com/index.php/Dashboard.addNews

$image = 'http://www.martialdevelopment.com/wordpress/wp-content/images/cheezburger-or-dim-mak.jpg'; 
$news = array(array('message' => 'Your friend @:563683308 just sent you a present!', 'action_link' => array('text' => 'Get Your Gift', 'href' => 'http://www.example.com/gifts?id=5878237'))); 
$facebook->api_client->dashboard_addNews($user_id, $news, $image);

Однако появится сообщение об ошибке:

[Wed Jan 27 03:42:27 2010] [error] [client 127.0.0.1] PHP Notice:  Array to string conversion in /var/local/site/webroot/xxxx/facebookapi_php5_restlib.php on line 2009

код в этой строке php

if (is_array($val)) $val = implode(',', $val);

пожалуйста, обратите внимание, что я не изменил facebookapi_php5_restlib.php, кроме вставки предложенного кода функции панели инструментов.

и когда я следую инструкции на http://wiki.developers.facebook.com/index.php/Dashboard.publishActivity и пытаюсь использовать ее:

$image = 'http://www.martialdevelopment.com/wordpress/wp-content/images/cheezburger-or-dim-mak.jpg'; 
$activity = array(array('message' => '{*actor*} just sponsored @:563683308!', 'action_link' => array('text' => 'Sponsor this cause', 'href' => 'http://www.example.com/games?id=5878237'))); 
$facebook->api_client->dashboard_publishActivity($activity, $image);

выдает ту же ошибку и про "преобразование массива в строку"

Есть ли какие-либо предложения по использованию нового API панели инструментов Facebook?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2010

Хорошо, я обнаружил, что вообще не нужно изменять класс php.

Все, что нам нужно сделать, это использовать call_method

$news = array(array('message' => 'There is a new level in the dungeon!', 'action_link' => array('text' => 'Play now.', 'href' => 'http://www.example.com/gifts?id=5878237'))); 
$facebook->api_client->call_method('facebook.dashboard.addGlobalNews', array('news' => $news));
0 голосов
/ 27 января 2010

Если вы не назначите одну и ту же переменную, предупреждение, скорее всего, исчезнет:

if (is_array($val)) $stringval = implode(',', $val); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...