2010-01-27 6 views
0

Cette question est sur Dashboard.addNews et Dashboard.publishActivityL'API de tableau de bord Facebook ... ne fonctionne pas: |

Facebook a dit au public à propos de sa nouvelle API Dashboard, mais il n'a pas fourni de mises à jour sur sa bibliothèque pour utiliser le nouveau code.

donc j'ai suivi les conseils de ce lien http://forum.developers.facebook.com/viewtopic.php?pid=197753 pour ajouter les nouvelles fonctions à la 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)); 
    } 

Mais maintenant, quand je suis l'exemple de code à 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); 

Cependant, il affichera cette erreur:

[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 

le code à cette ligne de PHP est

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

pls remarquer que je l'ai pas modifié le facebookapi_php5_restlib.php sauf coller celles suggérées code de fonction du tableau de bord.

et quand je suivre les instructions à http://wiki.developers.facebook.com/index.php/Dashboard.publishActivity et essayer de l'utiliser:

$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); 

il jette la même erreur trop sur les « Array à la conversion de chaîne »

Toute suggestion d'utiliser effectivement la nouvelle API de tableau de bord Facebook?

Répondre

0

D'accord, je trouve que pas besoin de modifier la classe php du tout.

Tout ce que nous devons faire est d'utiliser le 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

Si vous n'attribuez pas dans la même variable, l'avertissement sera probablement aller:

if (is_array($val)) $stringval = implode(',', $val); 
+0

hey c'est le code d'origine à l'intérieur facebookapi_php5_restlib.php – Unreality

Questions connexes