From de8a7f88ce150852534b1f3a9531b4328df1c613 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Thu, 22 Nov 2012 15:29:20 +0100 Subject: [PATCH] Facebook: Posts that only contain images without links are now posted as images Statusnet: Trying to post images - but it doesn't work right now --- fbpost/fbpost.php | 22 ++++++++++++++++------ statusnet/statusnet.php | 7 ++++++- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/fbpost/fbpost.php b/fbpost/fbpost.php index 8c45d004..cbe512e1 100644 --- a/fbpost/fbpost.php +++ b/fbpost/fbpost.php @@ -209,7 +209,7 @@ function fbpost_content(&$a) { $o .= '
'; $o .= '' . t('Install Facebook Post connector for this account.') . ''; + . $a->get_baseurl() . '/fbpost/' . $a->user['nickname'] . '&scope=publish_stream,manage_pages,photo_upload,user_groups,offline_access">' . t('Install Facebook Post connector for this account.') . ''; $o .= '
'; } @@ -221,7 +221,7 @@ function fbpost_content(&$a) { $o .= '
'; $o .= '' . t('Re-authenticate [This is necessary whenever your Facebook password is changed.]') . ''; + . $a->get_baseurl() . '/fbpost/' . $a->user['nickname'] . '&scope=publish_stream,manage_pages,photo_upload,user_groups,offline_access">' . t('Re-authenticate [This is necessary whenever your Facebook password is changed.]') . ''; $o .= '
'; $o .= '
'; @@ -658,6 +658,16 @@ function fbpost_post_hook(&$a,&$b) { if($reply) { $url = 'https://graph.facebook.com/' . $reply . '/' . (($likes) ? 'likes' : 'comments'); + } else if (($link == "") and ($image != "")) { + // If it is only an image without a page link then post this image as a photo + $postvars = array( + 'access_token' => $fb_token, + 'url' => $image, + ); + if ($msg != $image) + $postvars['message'] = $msg; + + $url = 'https://graph.facebook.com/'.$target.'/photos'; } else if (($link != "") or ($image != "") or ($b['title'] == '') or (strlen($msg) < 500) or ($target != "me")) { $url = 'https://graph.facebook.com/'.$target.'/feed'; if (!get_pconfig($b['uid'],'facebook','suppress_view_on_friendica') and $b['plink']) @@ -700,14 +710,14 @@ function fbpost_post_hook(&$a,&$b) { add_to_queue($a->contact,NETWORK_FACEBOOK,$s); notice( t('Facebook post failed. Queued for retry.') . EOL); } - + if (isset($retj->error) && $retj->error->type == "OAuthException" && $retj->error->code == 190) { logger('Facebook session has expired due to changed password.', LOGGER_DEBUG); - + $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']) ); notification(array( 'uid' => $b['uid'], @@ -720,7 +730,7 @@ function fbpost_post_hook(&$a,&$b) { 'source_link' => $a->config["system"]["url"], 'source_photo' => $a->config["system"]["url"] . '/images/person-80.jpg', )); - + 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); } diff --git a/statusnet/statusnet.php b/statusnet/statusnet.php index 3bbe4171..9bbe4dcd 100755 --- a/statusnet/statusnet.php +++ b/statusnet/statusnet.php @@ -538,6 +538,7 @@ function statusnet_post_hook(&$a,&$b) { // information during shortening of potential links but do not // shorten all the links in a 200000 character long essay. + $tempfile = ""; $intelligent_shortening = get_config('statusnet','intelligent_shortening'); if (!$intelligent_shortening) { if (! $b['title']=='') { @@ -619,7 +620,9 @@ function statusnet_post_hook(&$a,&$b) { $image = $msgarr["image"]; if ($image != "") { $imagedata = file_get_contents($image); - $postdata = array("status"=>$msg, "media"=>$imagedata); + $tempfile = tempnam("", "upload"); + file_put_contents($tempfile, $imagedata); + $postdata = array("status"=>$msg, "media"=>"@".$tempfile); } else $postdata = array("status"=>$msg); } @@ -634,6 +637,8 @@ function statusnet_post_hook(&$a,&$b) { logger('Send to StatusNet failed: "' . $result->error . '"'); } } + if ($tempfile != "") + unlink($tempfile); } }