Facebook: First changes to make the connector maybe work with the second version of the Facebook API

Twitter/Facebook: New functions for expiring of imported posts from twitter and facebook.
This commit is contained in:
Michael Vogel 2014-06-05 17:45:13 +02:00
parent a000f735f2
commit b5869e7961
3 changed files with 63 additions and 11 deletions

View file

@ -248,7 +248,7 @@ function fbpost_content(&$a) {
//read_stream,publish_stream,manage_pages,photo_upload,user_groups,offline_access //read_stream,publish_stream,manage_pages,photo_upload,user_groups,offline_access
$o .= '<a href="https://www.facebook.com/dialog/oauth?client_id=' . $appid . '&redirect_uri=' $o .= '<a href="https://www.facebook.com/dialog/oauth?client_id=' . $appid . '&redirect_uri='
. $a->get_baseurl() . '/fbpost/' . $a->user['nickname'] . '&scope=export_stream,read_stream,publish_stream,manage_pages,photo_upload,user_groups,publish_actions,user_friends,create_note,share_item,video_upload,status_update">' . t('Install Facebook Post connector for this account.') . '</a>'; . $a->get_baseurl() . '/fbpost/' . $a->user['nickname'] . '&scope=export_stream,read_stream,publish_stream,manage_pages,photo_upload,user_groups,publish_actions,user_friends,share_item,video_upload,status_update">' . t('Install Facebook Post connector for this account.') . '</a>';
$o .= '</div>'; $o .= '</div>';
} }
@ -260,7 +260,7 @@ function fbpost_content(&$a) {
$o .= '<div id="fbpost-enable-wrapper">'; $o .= '<div id="fbpost-enable-wrapper">';
$o .= '<a href="https://www.facebook.com/dialog/oauth?client_id=' . $appid . '&redirect_uri=' $o .= '<a href="https://www.facebook.com/dialog/oauth?client_id=' . $appid . '&redirect_uri='
. $a->get_baseurl() . '/fbpost/' . $a->user['nickname'] . '&scope=export_stream,read_stream,publish_stream,manage_pages,photo_upload,user_groups,publish_actions,user_friends,create_note,share_item,video_upload,status_update">' . t('Re-authenticate [This is necessary whenever your Facebook password is changed.]') . '</a>'; . $a->get_baseurl() . '/fbpost/' . $a->user['nickname'] . '&scope=export_stream,read_stream,publish_stream,manage_pages,photo_upload,user_groups,publish_actions,user_friends,share_item,video_upload,status_update">' . t('Re-authenticate [This is necessary whenever your Facebook password is changed.]') . '</a>';
$o .= '</div>'; $o .= '</div>';
$o .= '<div id="fbpost-post-default-form">'; $o .= '<div id="fbpost-post-default-form">';
@ -666,11 +666,13 @@ function fbpost_post_hook(&$a,&$b) {
$postvars['message'] = $msg; $postvars['message'] = $msg;
$url = 'https://graph.facebook.com/'.$target.'/photos'; $url = 'https://graph.facebook.com/'.$target.'/photos';
} else if (($link != "") or ($image != "") or ($b['title'] == '') or (strlen($msg) < 500)) { //} else if (($link != "") or ($image != "") or ($b['title'] == '') or (strlen($msg) < 500)) {
} else {
$url = 'https://graph.facebook.com/'.$target.'/feed'; $url = 'https://graph.facebook.com/'.$target.'/feed';
if (!get_pconfig($b['uid'],'facebook','suppress_view_on_friendica') and $b['plink']) if (!get_pconfig($b['uid'],'facebook','suppress_view_on_friendica') and $b['plink'])
$postvars['actions'] = '{"name": "' . t('View on Friendica') . '", "link": "' . $b['plink'] . '"}'; $postvars['actions'] = '{"name": "' . t('View on Friendica') . '", "link": "' . $b['plink'] . '"}';
} else { }
/* } else {
// if its only a message and a subject and the message is larger than 500 characters then post it as note // if its only a message and a subject and the message is larger than 500 characters then post it as note
$postvars = array( $postvars = array(
'access_token' => $fb_token, 'access_token' => $fb_token,
@ -678,7 +680,7 @@ function fbpost_post_hook(&$a,&$b) {
'subject' => $b['title'], 'subject' => $b['title'],
); );
$url = 'https://graph.facebook.com/'.$target.'/notes'; $url = 'https://graph.facebook.com/'.$target.'/notes';
} } */
// Post to page? // Post to page?
if (!$reply and ($target != "me") and $page_access_token) if (!$reply and ($target != "me") and $page_access_token)
@ -946,6 +948,7 @@ function fbpost_cron($a,$b) {
function fbpost_fetchwall($a, $uid) { function fbpost_fetchwall($a, $uid) {
require_once("include/oembed.php"); require_once("include/oembed.php");
require_once('mod/item.php');
$access_token = get_pconfig($uid,'facebook','access_token'); $access_token = get_pconfig($uid,'facebook','access_token');
$post_to_page = get_pconfig($uid,'facebook','post_to_page'); $post_to_page = get_pconfig($uid,'facebook','post_to_page');
@ -1081,8 +1084,6 @@ function fbpost_fetchwall($a, $uid) {
//print_r($_REQUEST); //print_r($_REQUEST);
logger('facebook: posting for user '.$uid); logger('facebook: posting for user '.$uid);
require_once('mod/item.php');
item_post($a); item_post($a);
} }

View file

@ -26,6 +26,7 @@ function fbsync_install() {
register_hook('connector_settings_post', 'addon/fbsync/fbsync.php', 'fbsync_settings_post'); register_hook('connector_settings_post', 'addon/fbsync/fbsync.php', 'fbsync_settings_post');
register_hook('cron', 'addon/fbsync/fbsync.php', 'fbsync_cron'); register_hook('cron', 'addon/fbsync/fbsync.php', 'fbsync_cron');
register_hook('follow', 'addon/fbsync/fbsync.php', 'fbsync_follow'); register_hook('follow', 'addon/fbsync/fbsync.php', 'fbsync_follow');
register_hook('expire', 'addon/fbsync/fbsync.php', 'fbsync_expire');
} }
function fbsync_uninstall() { function fbsync_uninstall() {
@ -33,6 +34,7 @@ function fbsync_uninstall() {
unregister_hook('connector_settings_post', 'addon/fbsync/fbsync.php', 'fbsync_settings_post'); unregister_hook('connector_settings_post', 'addon/fbsync/fbsync.php', 'fbsync_settings_post');
unregister_hook('cron', 'addon/fbsync/fbsync.php', 'fbsync_cron'); unregister_hook('cron', 'addon/fbsync/fbsync.php', 'fbsync_cron');
unregister_hook('follow', 'addon/fbsync/fbsync.php', 'fbsync_follow'); unregister_hook('follow', 'addon/fbsync/fbsync.php', 'fbsync_follow');
unregister_hook('expire', 'addon/fbsync/fbsync.php', 'fbsync_expire');
} }
function fbsync_follow($a, &$contact) { function fbsync_follow($a, &$contact) {
@ -185,6 +187,30 @@ function fbsync_cron($a,$b) {
set_config('fbsync','last_poll', time()); set_config('fbsync','last_poll', time());
} }
function fbsync_expire($a,$b) {
$days = get_config('fbsync', 'expire');
if ($days == 0)
return;
$r = q("DELETE FROM `item` WHERE `deleted` AND `network` = '%s'", dbesc(NETWORK_FACEBOOK));
require_once("include/items.php");
logger('fbsync_expire: expire_start');
$r = q("SELECT * FROM `pconfig` WHERE `cat` = 'fbsync' AND `k` = 'sync' AND `v` = '1' ORDER BY RAND()");
if(count($r)) {
foreach($r as $rr) {
logger('fbsync_expire: user '.$rr['uid']);
item_expire($rr['uid'], $days, NETWORK_FACEBOOK, true);
}
}
logger('fbsync_expire: expire_end');
}
function fbsync_createpost($a, $uid, $self, $contacts, $applications, $post, $create_user) { function fbsync_createpost($a, $uid, $self, $contacts, $applications, $post, $create_user) {
require_once("include/oembed.php"); require_once("include/oembed.php");
@ -1018,7 +1044,6 @@ function fbsync_fetchfeed($a, $uid) {
foreach ($post_data AS $post) { foreach ($post_data AS $post) {
if ($post->updated_time > $last_updated) if ($post->updated_time > $last_updated)
$last_updated = $post->updated_time; $last_updated = $post->updated_time;
fbsync_createpost($a, $uid, $self, $contacts, $application_data, $post, $create_user); fbsync_createpost($a, $uid, $self, $contacts, $application_data, $post, $create_user);
} }

View file

@ -72,6 +72,7 @@ function twitter_install() {
register_hook('cron', 'addon/twitter/twitter.php', 'twitter_cron'); register_hook('cron', 'addon/twitter/twitter.php', 'twitter_cron');
register_hook('queue_predeliver', 'addon/twitter/twitter.php', 'twitter_queue_hook'); register_hook('queue_predeliver', 'addon/twitter/twitter.php', 'twitter_queue_hook');
register_hook('follow', 'addon/twitter/twitter.php', 'twitter_follow'); register_hook('follow', 'addon/twitter/twitter.php', 'twitter_follow');
register_hook('expire', 'addon/twitter/twitter.php', 'twitter_expire');
logger("installed twitter"); logger("installed twitter");
} }
@ -85,6 +86,7 @@ function twitter_uninstall() {
unregister_hook('cron', 'addon/twitter/twitter.php', 'twitter_cron'); unregister_hook('cron', 'addon/twitter/twitter.php', 'twitter_cron');
unregister_hook('queue_predeliver', 'addon/twitter/twitter.php', 'twitter_queue_hook'); unregister_hook('queue_predeliver', 'addon/twitter/twitter.php', 'twitter_queue_hook');
unregister_hook('follow', 'addon/twitter/twitter.php', 'twitter_follow'); unregister_hook('follow', 'addon/twitter/twitter.php', 'twitter_follow');
unregister_hook('expire', 'addon/twitter/twitter.php', 'twitter_expire');
// old setting - remove only // old setting - remove only
unregister_hook('post_local_end', 'addon/twitter/twitter.php', 'twitter_post_hook'); unregister_hook('post_local_end', 'addon/twitter/twitter.php', 'twitter_post_hook');
@ -624,6 +626,30 @@ function twitter_cron($a,$b) {
set_config('twitter','last_poll', time()); set_config('twitter','last_poll', time());
} }
function twitter_expire($a,$b) {
$days = get_config('twitter', 'expire');
if ($days == 0)
return;
$r = q("DELETE FROM `item` WHERE `deleted` AND `network` = '%s'", dbesc(NETWORK_TWITTER));
require_once("include/items.php");
logger('twitter_expire: expire_start');
$r = q("SELECT * FROM `pconfig` WHERE `cat` = 'twitter' AND `k` = 'import' AND `v` = '1' ORDER BY RAND()");
if(count($r)) {
foreach($r as $rr) {
logger('twitter_expire: user '.$rr['uid']);
item_expire($rr['uid'], $days, NETWORK_TWITTER, true);
}
}
logger('twitter_expire: expire_end');
}
function twitter_fetchtimeline($a, $uid) { function twitter_fetchtimeline($a, $uid) {
$ckey = get_config('twitter', 'consumerkey'); $ckey = get_config('twitter', 'consumerkey');
$csecret = get_config('twitter', 'consumersecret'); $csecret = get_config('twitter', 'consumersecret');