]> git.mxchange.org Git - friendica-addons.git/blobdiff - facebook/facebook.php
Show the pseudo-user Administrator instead of a broken image
[friendica-addons.git] / facebook / facebook.php
index 20690eddc404ba6a25fc5a3d0d199913c9d75cf0..8fcde40332e7ff02fc6c94a675e947c16510a017 100755 (executable)
@@ -54,6 +54,7 @@
  */
 
 define('FACEBOOK_MAXPOSTLEN', 420);
+define('FACEBOOK_SESSION_ERR_NOTIFICATION_INTERVAL', 259200); // 3 days
 
 
 function facebook_install() {
@@ -597,7 +598,7 @@ function facebook_cron($a,$b) {
                                
                                if(strlen($a->config['admin_email']) && !get_config('facebook', 'realtime_err_mailsent')) {
                                        $res = mail($a->config['admin_email'], t('Problems with Facebook Real-Time Updates'), 
-                                               "Hi!\n\nThere's a problem with the Facebook Real-Time Updates that cannot be solved automatically. Maybe an permission issue?\n\nThis e-mail will only be sent once.",
+                                               "Hi!\n\nThere's a problem with the Facebook Real-Time Updates that cannot be solved automatically. Maybe a permission issue?\n\nPlease try to re-activate it on " . $a->config["system"]["url"] . "/admin/plugins/facebook\n\nThis e-mail will only be sent once.",
                                                'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
                                                . 'Content-type: text/plain; charset=UTF-8' . "\n"
                                                . 'Content-transfer-encoding: 8bit'
@@ -931,6 +932,7 @@ function facebook_post_hook(&$a,&$b) {
 
                                if(! get_config('facebook','test_mode')) {
                                        $x = post_url($url, $postvars);
+                                       logger('Facebook post returns: ' . $x, LOGGER_DEBUG);
 
                                        $retj = json_decode($x);
                                        if($retj->id) {
@@ -938,7 +940,6 @@ function facebook_post_hook(&$a,&$b) {
                                                        dbesc('fb::' . $retj->id),
                                                        intval($b['id'])
                                                );
-                                               del_pconfig($b['uid'], 'facebook', 'session_expired_mailsent');
                                        }
                                        else {
                                                if(! $likes) {
@@ -950,7 +951,9 @@ function facebook_post_hook(&$a,&$b) {
                                                
                                                if (isset($retj->error) && $retj->error->type == "OAuthException" && $retj->error->code == 190) {
                                                        logger('Facebook session has expired due to changed password.', LOGGER_DEBUG);
-                                                       if (!get_pconfig($b['uid'], 'facebook', 'session_expired_mailsent')) {
+                                                       
+                                                       $last_notification = get_pconfig($b['uid'], 'facebook', 'session_expired_mailsent');
+                                                       if (!$last_notification || $last_notification < (time() - FACEBOOK_SESSION_ERR_NOTIFICATION_INTERVAL)) {
                                                                require_once('include/enotify.php');
                                                        
                                                                $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($b['uid']) );
@@ -961,14 +964,15 @@ function facebook_post_hook(&$a,&$b) {
                                                                        'language'     => $r[0]['language'],
                                                                        'to_name'      => $r[0]['username'],
                                                                        'to_email'     => $r[0]['email'],
+                                                                       'source_name'  => t('Administrator'),
+                                                                       'source_link'  => $a->config["system"]["url"],
+                                                                       'source_photo' => $a->config["system"]["url"] . '/images/person-80.jpg',
                                                                ));
                                                                
-                                                               set_pconfig($b['uid'], 'facebook', 'session_expired_mailsent', '1');
-                                                       }
+                                                               set_pconfig($b['uid'], 'facebook', 'session_expired_mailsent', time());
+                                                       } else logger('Facebook: No notification, as the last one was sent on ' . $last_notification, LOGGER_DEBUG);
                                                }
                                        }
-                                       
-                                       logger('Facebook post returns: ' . $x, LOGGER_DEBUG);
                                }
                        }
                }
@@ -980,6 +984,7 @@ function facebook_enotify(&$app, &$data) {
                $data['itemlink'] = '/facebook';
                $data['epreamble'] = $data['preamble'] = t('Your Facebook connection became invalid. Please Re-authenticate.');
                $data['subject'] = t('Facebook connection became invalid');
+               $data['body'] = sprintf( t("Hi %1\$s,\n\nThe connection between your accounts on %2\$s and Facebook became invalid. This usually happens after you change your Facebook-password. To enable the connection again, you have to %3\$sre-authenticate the Facebook-connector%4\$s."), $data['params']['to_name'], "[url=" . $app->config["system"]["url"] . "]" . $app->config["sitename"] . "[/url]", "[url=" . $app->config["system"]["url"] . "/facebook]", "[/url]");
        }
 }