forked from friendica/friendica-addons
fbpost/fbsync: Better picture support for facebook. Now the highest resolution is fetched.
This commit is contained in:
parent
1b41f6581b
commit
31ab2a3cbf
3 changed files with 36 additions and 8 deletions
|
@ -1050,11 +1050,25 @@ function fbpost_fetchwall($a, $uid) {
|
||||||
|
|
||||||
$type = $item->type;
|
$type = $item->type;
|
||||||
|
|
||||||
if(isset($item->picture) && isset($item->link))
|
if (isset($item->picture))
|
||||||
$content .= "\n".'[url='.$item->link.'][img]'.fpost_cleanpicture($item->picture).'[/img][/url]';
|
$picture = $item->picture;
|
||||||
|
|
||||||
|
if (($type == "photo") AND isset($item->object_id)) {
|
||||||
|
logger('fbpost_fetchwall: fetching fbid '.$item->object_id, LOGGER_DEBUG);
|
||||||
|
$url = "https://graph.facebook.com/v2.0/".$item->object_id."/?access_token=".$access_token;
|
||||||
|
$feed = fetch_url($url);
|
||||||
|
$data = json_decode($feed);
|
||||||
|
if (isset($data->images)) {
|
||||||
|
$picture = $data->images[0]->source;
|
||||||
|
logger('fbpost_fetchwall: got fbid image '.$preview, LOGGER_DEBUG);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(($picture != "") && isset($item->link))
|
||||||
|
$content .= "\n".'[url='.$item->link.'][img]'.$picture.'[/img][/url]';
|
||||||
else {
|
else {
|
||||||
if (isset($item->picture))
|
if ($picture != "")
|
||||||
$content .= "\n".'[img]'.fpost_cleanpicture($item->picture).'[/img]';
|
$content .= "\n".'[img]'.$picture.'[/img]';
|
||||||
// if just a link, it may be a wall photo - check
|
// if just a link, it may be a wall photo - check
|
||||||
if(isset($item->link))
|
if(isset($item->link))
|
||||||
$content .= fbpost_get_photo($uid,$item->link);
|
$content .= fbpost_get_photo($uid,$item->link);
|
||||||
|
@ -1125,7 +1139,7 @@ function fbpost_get_photo($uid,$link) {
|
||||||
$x = fetch_url('https://graph.facebook.com/'.$photo_id.'?access_token='.$access_token);
|
$x = fetch_url('https://graph.facebook.com/'.$photo_id.'?access_token='.$access_token);
|
||||||
$j = json_decode($x);
|
$j = json_decode($x);
|
||||||
if($j->picture)
|
if($j->picture)
|
||||||
return "\n\n".'[url='.$link.'][img]'.fpost_cleanpicture($j->picture).'[/img][/url]';
|
return "\n\n".'[url='.$link.'][img]'.$j->picture.'[/img][/url]';
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,6 +213,8 @@ function fbsync_expire($a,$b) {
|
||||||
|
|
||||||
function fbsync_createpost($a, $uid, $self, $contacts, $applications, $post, $create_user) {
|
function fbsync_createpost($a, $uid, $self, $contacts, $applications, $post, $create_user) {
|
||||||
|
|
||||||
|
$access_token = get_pconfig($uid,'facebook','access_token');
|
||||||
|
|
||||||
require_once("include/oembed.php");
|
require_once("include/oembed.php");
|
||||||
|
|
||||||
// check if it was already imported
|
// check if it was already imported
|
||||||
|
@ -365,10 +367,22 @@ function fbsync_createpost($a, $uid, $self, $contacts, $applications, $post, $cr
|
||||||
if (isset($media->src))
|
if (isset($media->src))
|
||||||
$preview = $media->src;
|
$preview = $media->src;
|
||||||
|
|
||||||
if (isset($media->photo))
|
if (isset($media->photo)) {
|
||||||
if (isset($media->photo->images) AND (count($media->photo->images) > 1))
|
if (isset($media->photo->images) AND (count($media->photo->images) > 1))
|
||||||
$preview = $media->photo->images[1]->src;
|
$preview = $media->photo->images[1]->src;
|
||||||
|
|
||||||
|
if (isset($media->photo->fbid)) {
|
||||||
|
logger('fbsync_createpost: fetching fbid '.$media->photo->fbid, LOGGER_DEBUG);
|
||||||
|
$url = "https://graph.facebook.com/v2.0/".$media->photo->fbid."/?access_token=".$access_token;
|
||||||
|
$feed = fetch_url($url);
|
||||||
|
$data = json_decode($feed);
|
||||||
|
if (isset($data->images)) {
|
||||||
|
$preview = $data->images[0]->source;
|
||||||
|
logger('fbsync_createpost: got fbid image '.$preview, LOGGER_DEBUG);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($media->href) AND ($preview != "") AND ($media->href != ""))
|
if (isset($media->href) AND ($preview != "") AND ($media->href != ""))
|
||||||
$content .= "\n".'[url='.$media->href.'][img]'.$preview.'[/img][/url]';
|
$content .= "\n".'[url='.$media->href.'][img]'.$preview.'[/img][/url]';
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -307,8 +307,8 @@ function privacy_image_cache_img_cb($matches) {
|
||||||
$matches[2] = urldecode($queryvar['url']);
|
$matches[2] = urldecode($queryvar['url']);
|
||||||
|
|
||||||
// if fetching facebook pictures don't fetch the thumbnail but the big one
|
// if fetching facebook pictures don't fetch the thumbnail but the big one
|
||||||
if (((strpos($matches[2], ".fbcdn.net/") OR strpos($matches[2], "/fbcdn-photos-"))) and (substr($matches[2], -6) == "_s.jpg"))
|
//if (((strpos($matches[2], ".fbcdn.net/") OR strpos($matches[2], "/fbcdn-photos-"))) and (substr($matches[2], -6) == "_s.jpg"))
|
||||||
$matches[2] = substr($matches[2], 0, -6)."_n.jpg";
|
// $matches[2] = substr($matches[2], 0, -6)."_n.jpg";
|
||||||
|
|
||||||
// following line changed per bug #431
|
// following line changed per bug #431
|
||||||
if (privacy_image_cache_is_local_image($matches[2]))
|
if (privacy_image_cache_is_local_image($matches[2]))
|
||||||
|
|
Loading…
Reference in a new issue