* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+if (!defined('STATUSNET')) {
+ exit(1);
+}
+
require_once INSTALLDIR . '/plugins/Facebook/facebook/facebook.php';
require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
require_once INSTALLDIR . '/lib/noticelist.php';
}
function isFacebookBound($notice, $flink) {
-
if (empty($flink)) {
return false;
}
// Avoid a loop
-
if ($notice->source == 'Facebook') {
common_log(LOG_INFO, "Skipping notice $notice->id because its " .
'source is Facebook.');
}
// If the user does not want to broadcast to Facebook, move along
-
if (!($flink->noticesync & FOREIGN_NOTICE_SEND == FOREIGN_NOTICE_SEND)) {
common_log(LOG_INFO, "Skipping notice $notice->id " .
'because user has FOREIGN_NOTICE_SEND bit off.');
// If it's not a reply, or if the user WANTS to send @-replies,
// then, yeah, it can go to Facebook.
-
if (!preg_match('/@[a-zA-Z0-9_]{1,15}\b/u', $notice->content) ||
($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY)) {
return true;
}
return false;
-
}
function facebookBroadcastNotice($notice)
);
if (isFacebookBound($notice, $flink)) {
-
// Okay, we're good to go, update the FB status
-
$fbuid = $flink->foreign_id;
$user = $flink->getUser();
try {
-
// Check permissions
-
common_debug(
'FacebookPlugin - checking for publish_stream permission for user '
. "$user->nickname ($user->id), Facebook UID: $fbuid"
// NOTE: $facebook->api_client->users_hasAppPermission('publish_stream', $fbuid)
// has been returning bogus results, so we're using FQL to check for
// publish_stream permission now
-
$fql = "SELECT publish_stream FROM permissions WHERE uid = $fbuid";
$result = $facebook->api_client->fql_query($fql);
}
// Post to Facebook
-
if ($notice->hasAttachments() && $canPublish == 1) {
publishStream($notice, $user, $fbuid);
} elseif ($canUpdate == 1 || $canPublish == 1) {
}
// Finally, attempt to update the user's profile box
-
if ($canPublish == 1 || $canUpdate == 1) {
updateProfileBox($facebook, $flink, $notice, $user);
}
. "Facebook UID: $fbuid"
);
- $text = formatNotice($notice, $user, $fbuid);
-
$facebook = getFacebook();
$result = $facebook->api_client->users_setStatus(
- $text,
+ $notice->content,
$fbuid,
false,
true
. "Facebook UID: $fbuid"
);
- $text = formatNotice($notice, $user, $fbuid);
$fbattachment = format_attachments($notice->attachments());
$facebook = getFacebook();
$facebook->api_client->stream_publish(
- $text,
+ $notice->content,
$fbattachment,
null,
null,
);
}
-function formatNotice($notice, $user, $fbuid)
-{
- // Get the status 'verb' the user has set, if any
-
- common_debug(
- "FacebookPlugin - Looking to see if $user->nickname ($user->id), "
- . "Facebook UID: $fbuid has set a verb for Facebook posting..."
- );
-
- $facebook = getFacebook();
- $verb = trim(
- $facebook->api_client->data_getUserPreference(
- FACEBOOK_NOTICE_PREFIX,
- $fbuid
- )
- );
-
- common_debug("Facebook returned " . var_export($verb, true));
-
- $text = null;
-
- if (!empty($verb)) {
- common_debug("FacebookPlugin - found a verb: $verb");
- $text = trim($verb) . ' ' . $notice->content;
- } else {
- common_debug("FacebookPlugin - no verb found.");
- $text = $notice->content;
- }
-
- return $text;
-}
-
function updateProfileBox($facebook, $flink, $notice, $user) {
$facebook = getFacebook();
common_log(LOG_WARNING, $msg);
}
-
}
/**
*
* @return boolean success flag
*/
-
function mail_facebook_app_removed($user)
{
- common_init_locale($user->language);
-
$profile = $user->getProfile();
$site_name = common_config('site', 'name');
+ common_switch_locale($user->language);
+
$subject = sprintf(
_m('Your %1$s Facebook application access has been disabled.',
$site_name));
"re-installing the %2\$s Facebook application.\n\nRegards,\n\n%2\$s"),
$user->nickname, $site_name);
- common_init_locale();
+ common_switch_locale();
return mail_to_user($user, $subject, $body);
-
}