- // Check to see if the user has given the FB app status update perms
- $result = $facebook->api_client->
- users_hasAppPermission('status_update', $fbuid);
-
- if ($result != 1) {
- $user = $flink->getUser();
- $msg = "Can't send notice $notice->id to Facebook " .
- "because user $user->nickname hasn't given the " .
- 'Facebook app \'status_update\' permission.';
- common_log(LOG_INFO, $msg);
- $success = false;
+ // Get the status 'verb' (prefix) the user has set
+
+ // XXX: Does this call count against our per user FB request limit?
+ // If so we should consider storing verb elsewhere or not storing
+
+ $prefix = $facebook->api_client->data_getUserPreference(FACEBOOK_NOTICE_PREFIX,
+ $fbuid);
+
+ $status = "$prefix $notice->content";
+
+ $can_publish = $facebook->api_client->users_hasAppPermission('publish_stream',
+ $fbuid);
+
+ $can_update = $facebook->api_client->users_hasAppPermission('status_update',
+ $fbuid);
+
+ if (!empty($attachments) && $can_publish == 1) {
+ $fbattachment = format_attachments($attachments);
+ $facebook->api_client->stream_publish($status, $fbattachment,
+ null, null, $fbuid);
+ common_log(LOG_INFO,
+ "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 " .
+ "as a status update (fbuid = $fbuid).");
+ } else {
+ $msg = "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);