Provisional fix for ticket #3108: Facebook bridge sends "likes" as the notice's original poster instead of as the person doing the liking.

Adds optional $profile parameter for Facebookclient constructor and uses that for the foreign_link lookup if provided instead of the notice's poster.
This commit is contained in:
Brion Vibber 2011-03-30 17:01:06 -07:00
parent 14456cbbb2
commit 24945715d0
2 changed files with 10 additions and 4 deletions

View File

@ -526,7 +526,7 @@ ENDOFSCRIPT;
*/ */
function onEndFavorNotice(Profile $profile, Notice $notice) function onEndFavorNotice(Profile $profile, Notice $notice)
{ {
$client = new Facebookclient($notice); $client = new Facebookclient($notice, $profile);
$client->like(); $client->like();
return true; return true;
@ -542,7 +542,7 @@ ENDOFSCRIPT;
*/ */
function onEndDisfavorNotice(Profile $profile, Notice $notice) function onEndDisfavorNotice(Profile $profile, Notice $notice)
{ {
$client = new Facebookclient($notice); $client = new Facebookclient($notice, $profile);
$client->unLike(); $client->unLike();
return true; return true;

View File

@ -48,7 +48,12 @@ class Facebookclient
protected $notice = null; // The user's notice protected $notice = null; // The user's notice
protected $user = null; // Sender of the notice protected $user = null; // Sender of the notice
function __construct($notice) /**
*
* @param Notice $notice the notice to manipulate
* @param Profile $profile local user to act as; if left empty, the notice's poster will be used.
*/
function __construct($notice, $profile=null)
{ {
$this->facebook = self::getFacebook(); $this->facebook = self::getFacebook();
@ -60,8 +65,9 @@ class Facebookclient
$this->notice = $notice; $this->notice = $notice;
$profile_id = $profile ? $profile->id : $notice->profile_id;
$this->flink = Foreign_link::getByUserID( $this->flink = Foreign_link::getByUserID(
$notice->profile_id, $profile_id,
FACEBOOK_SERVICE FACEBOOK_SERVICE
); );