X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=inline;f=plugins%2FFacebook%2Ffacebookutil.php;h=ab2d427264254d4f15b8194f07af1044d8d9533f;hb=ad651c35353021d05ef4a013e57c17d0b885c5dc;hp=da53f35e2882eb1a13aa26b4dc40b34f00273cd5;hpb=34a21e76054ad3bfa11a5f790ce983645f651a54;p=quix0rs-gnu-social.git diff --git a/plugins/Facebook/facebookutil.php b/plugins/Facebook/facebookutil.php index da53f35e28..ab2d427264 100644 --- a/plugins/Facebook/facebookutil.php +++ b/plugins/Facebook/facebookutil.php @@ -104,9 +104,13 @@ function facebookBroadcastNotice($notice) $status = "$prefix $notice->content"; + common_debug("FacebookPlugin - checking for publish_stream permission for user $user->id"); + $can_publish = $facebook->api_client->users_hasAppPermission('publish_stream', $fbuid); + common_debug("FacebookPlugin - checking for status_update permission for user $user->id"); + $can_update = $facebook->api_client->users_hasAppPermission('status_update', $fbuid); if (!empty($attachments) && $can_publish == 1) { @@ -114,15 +118,15 @@ function facebookBroadcastNotice($notice) $facebook->api_client->stream_publish($status, $fbattachment, null, null, $fbuid); common_log(LOG_INFO, - "Posted notice $notice->id w/attachment " . + "FacebookPlugin - Posted notice $notice->id w/attachment " . "to Facebook user's stream (fbuid = $fbuid)."); } elseif ($can_update == 1 || $can_publish == 1) { $facebook->api_client->users_setStatus($status, $fbuid, false, true); common_log(LOG_INFO, - "Posted notice $notice->id to Facebook " . + "FacebookPlugin - Posted notice $notice->id to Facebook " . "as a status update (fbuid = $fbuid)."); } else { - $msg = "Not sending notice $notice->id to Facebook " . + $msg = "FacebookPlugin - Not sending notice $notice->id to Facebook " . "because user $user->nickname hasn't given the " . 'Facebook app \'status_update\' or \'publish_stream\' permission.'; common_log(LOG_WARNING, $msg); @@ -138,21 +142,23 @@ function facebookBroadcastNotice($notice) $code = $e->getCode(); - common_log(LOG_WARNING, 'Facebook returned error code ' . - $code . ': ' . $e->getMessage()); - common_log(LOG_WARNING, - 'Unable to update Facebook status for ' . - "$user->nickname (user id: $user->id)!"); + $msg = "FacebookPlugin - Facebook returned error code $code: " . + $e->getMessage() . ' - ' . + "Unable to update Facebook status (notice $notice->id) " . + "for $user->nickname (user id: $user->id)!"; + + common_log(LOG_WARNING, $msg); - if ($code == 200 || $code == 250) { + if ($code == 100 || $code == 200 || $code == 250) { + // 100 The account is 'inactive' (probably - this is not well documented) // 200 The application does not have permission to operate on the passed in uid parameter. // 250 Updating status requires the extended permission status_update or publish_stream. // see: http://wiki.developers.facebook.com/index.php/Users.setStatus#Example_Return_XML remove_facebook_app($flink); - } else { + } else { // Try sending again later. @@ -168,7 +174,7 @@ function facebookBroadcastNotice($notice) function updateProfileBox($facebook, $flink, $notice) { $fbaction = new FacebookAction($output = 'php://output', - $indent = true, $facebook, $flink); + $indent = null, $facebook, $flink); $fbaction->updateProfileBox($notice); } @@ -258,3 +264,38 @@ function remove_facebook_app($flink) } } + +/** + * Send a mail message to notify a user that her Facebook Application + * access has been removed. + * + * @param User $user user whose Facebook app link has been removed + * + * @return boolean success flag + */ + +function mail_facebook_app_removed($user) +{ + $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)); + + $body = sprintf(_m("Hi, %1\$s. We're sorry to inform you that we are " . + 'unable to update your Facebook status from %2$s, and have disabled ' . + 'the Facebook application for your account. This may be because ' . + 'you have removed the Facebook application\'s authorization, or ' . + 'have deleted your Facebook account. You can re-enable the ' . + 'Facebook application and automatic status updating by ' . + "re-installing the %2\$s Facebook application.\n\nRegards,\n\n%2\$s"), + $user->nickname, $site_name); + + common_switch_locale(); + return mail_to_user($user, $subject, $body); + +}