LinkedIn API: post won't take the image from the metadata (og:image) of the article's link - metadata

I want to post on our Organization's page within Linkedin, using their API.
I want every post to take the reader to the article posted in our website.
The page itself has this meta information:
<meta property="og:title" content="⛔️ Un perro peligroso mata a otro en un barrio cerrado. Responde el Consorcio también? O sólo el dueño del perro? Liga del Consorcista" />
<meta property="og:description" content="El propietario del perrito fallecido acciona contra el dueño del perro atacante y el Consorcio. Hay responsabilidad?" />
<meta property="og:site_name" content="Liga del Consorcista" />
<meta name="image" property="og:image" content="https://ligadelconsorcista.org/archivos/id.5859--animalespeligrososjpg--fecha-12-08-2022-06-18.jpg" />
<meta property="og:image:secure_url" content="https://ligadelconsorcista.org/archivos/id.5859--animalespeligrososjpg--fecha-12-08-2022-06-18.jpg" />
<meta property="og:image:width" content="400" />
<meta property="og:image:height" content="300" />
<meta property="og:image:alt" content="" />
So I expect that the post will show the article's image, using og:image.
Here's how I do it in a demo page:
<?php
$url = 'https://api.linkedin.com/rest/posts';
$headers = array( 'Content-Type: application/json',
'Linkedin-Version: 202208',
'X-Restli-Protocol-Version: 2.0.0',
'x-li-format: json',
'Authorization: Bearer '.ACCESS_TOKEN_LINKEDIN
);
$fields = '
{
"author": "urn:li:organization:34649146",
"commentary": "Un perro peligroso mata a otro en un barrio cerrado. Responde el Consorcio también? O sólo el dueño del perro? Texto completo: https://ligadelconsorcista.org/jurisprudencia-perro-peligroso-mata-a-otro-responsabilidad-concurrente-del-propietario-y-del-consorcio",
"visibility": "PUBLIC",
"distribution": {
"feedDistribution": "MAIN_FEED"
},
"content": {
"article": {
"source": "https://ligadelconsorcista.org/jurisprudencia-perro-peligroso-mata-a-otro-responsabilidad-concurrente-del-propietario-y-del-consorcio",
"title": "Perros peligrosos: Responde el Consorcio?",
"description": "Un perro peligroso mata a otro en un barrio cerrado. Responde el Consorcio también? O sólo el dueño del perro?"
}
},
"lifecycleState": "PUBLISHED",
"isReshareDisabledByAuthor": false
}
';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);
$response = curl_exec($curl);
PROBLEM: I can post the article, but it won't show the image.
As a reference, here are the permissions of my token:
r_1st_connections_size, r_ads, r_ads_reporting, r_basicprofile,
r_emailaddress, r_liteprofile, r_organization_admin,
r_organization_social, rw_ads, rw_organization_admin, w_member_social,
w_organization_social
And here's how it is posted:

Related

Facebook share button does not grab og tags (Response code 404)

When I click on the share button on this page, Facebook doesn't recognize the parameters I'm passing through og tags.
The problem seems to be Facebook is getting a "404" Response code, according to Open Graph Object Debuger
I checked the Response code from the page and get different results with different tools:
http://tools.seobook.com/server-header-checker/ -> 404 Not Found
http://web-sniffer.net/ -> 404 Not Found
http://httpstatus.io/ -> 200 OK
https://monitorbacklinks.com/seo-tools/http-header-status-check -> 200 OK
http://www.axandra.com/free-online-seo-tool/status-code.php -> 200 OK
If I telnet the server I get a "301 Moved Permanently" and the contents are returned correctly:
$ telnet mlgestion.es 80
Trying 46.105.153.112...
Connected to mlgestion.es.
Escape character is '^]'.
GET /es/Venta-Viviendas-Apartamento-Sur-Retamar-Almeria/59215/ HTTP/1.1
HOST: mlgestion.es
HTTP/1.1 301 Moved Permanently
Date: Thu, 05 Nov 2015 13:10:50 GMT
Server: Apache/2.2.23 (CentOS)
X-Powered-By: PHP/5.1.6
Location: //www.mlgestion.es/es/Venta-Viviendas-Apartamento-Sur-Retamar-Almeria/59215/
Vary: Accept-Encoding,User-Agent
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
950a
<!DOCTYPE HTML>
<html class="js" xml:lang="es" xmlns="http://www.w3.org/1999/xhtml" lang="es"><head>
<title>Apartamento en venta en Sur, Retamar, Almeria [Ref.59215]. 2 dormitorios</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="¿Quieres vivir en primera linea de playa a bajo coste? te presentamos este bonito apartamento ubicado en Retamar a 70 metros de la playa, en pleno paseo marítimo, residencial...">
<meta property="og:title" content="Venta Apartamento - Sur, Retamar, Almería [59215]" />
<meta property="og:image" content="http://mlgestion.es/_dat/100/44/fotos//59215/1-foto-800x535.jpg" />
<meta property="og:image:width" content="450"/>
<meta property="og:image:height" content="298"/>
<meta property="og:url" content="http://mlgestion.es/es/Venta-Viviendas-Apartamento-Sur-Retamar-Almeria/59215/" />
<meta property="og:description" content="Oportunidad en 1ª linea de playa ¿Quieres vivir en primera linea de playa a bajo coste? te pre
...
Other pages of the same site are fetched correctly (without photo) by Facebook.

You must specify one of `href`, `id`, `profile_id` or `name`

I dont know what could be wrong. I constantly receive this messages on my website when I'm logged as an administrator.
I'm using this OG Tags
<meta property="og:image" content="http://www.soychile.cl/imagenes/soychile-avatar.jpg"/>
<meta property="og:title" content="Acto de aniversario del Golpe: tres candidatos presidenciales han confirmado su asistencia | soychile.cl"/>
<meta property="og:url" content="http://www.soychile.cl/Santiago/Deportes/2013/09/03/197812/Aniversario-del-Golpe-tres-candidatos-presidenciales-han-confirmado-su-asistencia.aspx" />
<meta property="og:description" content="Evelyn Matthei, Ricardo Israel y Alfredo Sfeir aceptaron la invitación del Gobierno. Rechazaron Michelle Bachelet, Marcel Claude, Tomás Jocelyn-Holt y Roxana Miranda. Franco Parisi está en duda." />
<meta property="fb:app_id" content="number" />
<meta property="fb:admins" content="number" />
<meta property="fb:admins" content="number" />
<meta property="og:type" content="article" />
<meta property="article:author" content="http://www.soychile.cl/" />
<meta property="article:tag" content="Acto de aniversario del Golpe: tres candidatos presidenciales han confirmado su asistencia | soychile.cl"/>
<meta property="article:tag" content="Evelyn Matthei, Ricardo Israel y Alfredo Sfeir aceptaron la invitación del Gobierno. Rechazaron Michelle Bachelet, Marcel Claude, Tomás Jocelyn-Holt y Roxana Miranda. Franco Parisi está en duda." />
<meta property="article:tag" content="soychilecl" />
But It doesnt show any error when I'm not logged as admin

Post swf with parameters to facebook via application

I have a facebook application where the user choose 4 of his friends and then it creates a video (swf) with the pictures of your friends in it (loaded via xml). So I need to share this video on the user timeline. Everything works fine but the video is not embedded in the post on his timeline, there is only a post with the link to the page in it.
The weird thing is, if I post the url directly on my timeline, the video is embedded, but not if the same link is posted via the application.
here is my code called by the share button in js :
function postToFeed() {
var obj = {
method: 'feed',
link: 'https://mysite.com/flash/share-page.php?id=22',
picture: 'https://mysite.com/images/video-preview.jpg',
name: 'Name',
caption: 'Caption',
description: 'Description'
};
function callback(response) {
//some code here
}
FB.ui(obj, callback);
}
and the code in my share-page.php
<?php
$id_inscription = $_GET['id'];
$video_url = 'https://mysite.com/flash/share-page.php?id=22';
$video_preview_image = 'https://mysite.com/images/video-preview.jpg';
?>
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="content-language" content="en">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta property="og:video" content="<?php echo $video_url; ?>"/>
<!-- Open grah tags for Facebook -->
<meta property="og:title" content="Test video player" />
<meta property="og:description" content="A video player interface experiment." />
<meta property="og:type" content="video" />
<meta property="og:url" content="<?php echo $video_url; ?>"/>
<meta property="og:image" content="<?php echo $video_preview_image; ?>"/>
<meta property="og:site_name" content="Site name"/>
<!-- Video specific open graph tags -->
<meta property="og:video" content="<?php echo $video_url; ?>" />
<meta property="og:video:secure_url" content="<?php echo $video_url; ?>" /> <!-- Required for people on Facebook who have secure browsing enabled! -->
<meta property="og:video:width" content="325" />
<meta property="og:video:height" content="180" />
<meta property="og:video:type" content="application/x-shockwave-flash" />
<script src="js/swfobject.js"></script>
<script>
var flashvars = {
xmlUrl:"xml/data-<?php echo $id_inscription; ?>.xml",
policyFileUrl:"http://profile.ak.fbcdn.net/crossdomain.xml"
};
var params = {
menu: "false",
scale: "noScale",
allowFullscreen: "true",
allowScriptAccess: "always",
bgcolor: "",
wmode: "opaque"
//wmode: "direct" // can cause issues with FP settings & webcam
};
var attributes = {
id:"content"
};
swfobject.embedSWF(
"app.swf",
"altContent", "480", "270", "10.0.0",
"expressInstall.swf",
flashvars, params, attributes);
</script>
</head>
<body>
<div id="altContent">
<p>Get Adobe Flash player</p>
</div>
</body>
</html>
Found it, in the javascript you have to add
source: 'https://mysite.com/flash/app.swf'
DOesnt work for me .
Also facebook says ,It is NOT supposed to work By Design .
https://developers.facebook.com/bugs/589975484398226?browse=external_tasks_search_results_526fc388b99e18881434478
Please share here your code snippet if you could make it work . I have the meta tags taking care for the secure video Url as well .

Facebook Meta Tags

My problem was when some one is liking my website, the image, description, title etc. where completly wrong it took the first which is the service level agreement in my website. So I figured I have to add opengraph meta tags so I did:
<meta property="og:url" content="http://url.com/" />
<meta property="og:site_name" content="My Web" />
<meta property="og:type" content="website" />
<meta property="og:title" content="My Web.com" />
<meta property="og:image" content="http://url.com/logo.png" />
<meta property="og:description" content="My Web is a new community" />
<meta property="fb:app_id" content="7363627862327638" />
The problem is, it is still not working, the likes information is wrong, and I waited atleast 72 hours, so the cache of Facebook is not the problem.
Does anyone know what could be the problem? Thanks alot already!
Checkout this.. tutorial.
and use facebook debug tool to clear cache and set new metatags for your page.
Try this it worked for me -
Use Dynamic content in meta tag.
<?php
$params = array();
if(count($_GET) > 0) {
$params = $_GET;
} else {
$params = $_POST;
}
// defaults
if($params['type'] == "") $params['type'] = "restaurant";
if($params['locale'] == "") $params['locale'] = "en_US";
if($params['title'] == "") $params['title'] = "default title";
if($params['image'] == "") $params['image'] = "thumb";
if($params['description'] == "") $params['description'] = "default description";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# MY_APP_NAME_SPACE: http://ogp.me/ns/fb/MY_APP_NAME_SPACE#">
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<!-- Open Graph meta tags -->
<meta property="fb:app_id" content="MY_APP_ID" />
<meta property="og:site_name" content="meta site name"/>
<meta property="og:url" content="URL?type=<?php echo $params['type']; ?>&locale=<?php echo $params['locale']; ?>&title=<?php echo $params['title']; ?>&image=<?php echo $params['image']; ?>&description=<?php echo $params['description']; ?>"/>
<meta property="og:type" content="MY_APP_NAME_SPACE:<?php echo $params['type']; ?>"/>
<meta property="og:locale" content="<?php echo $params['locale']; ?>"/>
<meta property="og:title" content="<?php echo $params['title']; ?>"/>
<meta property="og:image" content="URL<?php echo $params['image']; ?>.png"/>
<meta property="og:description" content="<?php echo $params['description']; ?>"/>
</head>
</html>

any ideas why facebook like button do not display non-English letters on a wordpress blog?

All non-English (Lithuanian) elements like š,ė,ž,č and more are displayed as code which doesnt look nice. I added a facebook like button to my wordpress blog, which looks like this:
<iframe src="http://www.facebook.com/plugins/like.php?locale=lt_LT&href=<?php echo urlencode(get_permalink($post->ID)); ?>&layout=standard&show_faces=false&width=450&action=like&colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; position: relative; top: -150px; padding: 0 0 20px 0; overflow:hidden; width:450px; height:60px"></iframe>
You can see that I added locale=lt_LT (I'm from Lithuania)
DOCTYPE:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Im using this:
<?php
$thumb = get_post_meta($post->ID,'_thumbnail_id',false);
$thumb = wp_get_attachment_image_src($thumb[0], false);
$thumb = $thumb[0];
$default_img = get_bloginfo('stylesheet_directory').'/images/default_icon.jpg';
?>
<?php if(is_single() || is_page()) { ?>
<meta property="og:type" content="article" />
<meta property="og:title" content="<?php single_post_title(''); ?>" />
<meta property="og:description" content="<?php
while(have_posts()):the_post();
$out_excerpt = str_replace(array("\r\n", "\r", "\n"), "", get_the_excerpt());
echo apply_filters('the_excerpt_rss', $out_excerpt);
endwhile; ?>" />
<meta property="og:url" content="<?php the_permalink(); ?>"/>
<meta property="og:image" content="<?php if ( $thumb[0] == null ) { echo $default_img; } else { echo $thumb; } ?>" />
<?php } else { ?>
<meta property="og:type" content="article" />
<meta property="og:title" content="<?php bloginfo('name'); ?>" />
<meta property="og:url" content="<?php bloginfo('url'); ?>"/>
<meta property="og:description" content="<?php bloginfo('description'); ?>" />
<meta property="og:image" content="<?php if ( $thumb[0] == null ) { echo $default_img; } else { echo $thumb; } ?>" />
<?php } ?>
Can it be a problem with DOCTYPE or something else?
The language of the button sets when you order a button from http://developers.facebook.com/docs/reference/plugins/like/
the button should have the language according to the user. example
js.src = "/ / connect.facebook.net / es_LA / all.js # xfbml = 1 & appId = 250867014982684";
that line where it says you can modify for your code es_LA language. This is html 5.
ok, for like button, try using fb developer page and get the code for htlm5; instead of iframe. i made like button in spanish some time ago, let me check my code. i'll get baack to you.