laravel application can only share index page to facebook - php

I have an application on laravel and i am using AddThis (https://www.addthis.com/) for my website.
Everything is fine when i try to share the homepage, but i keep getting this "Whoops! There was an error." when i try to share any non-index pages.
I am using templating for the mata-data on the various pages
in my base.blade.php i have
<meta property="og:site_name" content="ALLMENZ" />
<meta property="og:url" content="mycontent" />
<meta property="fb:app_id" content="" /> <!-- for facebook-insights-->
<meta property="og:title" content="{{{$meta_title}}}" />
<meta property="og:description" content="{{{$meta_description}}}" />
<meta property="og:image" content="{{{$meta_photo}}}" />
and in the non-index page i have
<?php View::share('meta_title', 'user timeline'); ?>
<?php View::share('meta_description', 'this is the user timeline page'); ?>
<?php View::share('meta_photo', ''); ?>
Anyone has any idea what is happening here? Thanks in advance (=

You should generate the tag's content dynamically, for example, to generate the current url with http/https use following in your og:url:
<meta property="og:url" content="{{ Request::url() }}" />
The Request::url() will generate the current url for the page you are on. Also, don't leave any blank content in any meta tag. Then debug the url's using Debugger Tool.

What Worked For Me
If you happen to be trying to use AddThis with UTM codes or other querystring variables, here's what finally worked for me.
As per Sol, use OpenGraph meta tags but then use the FB Debugger to verify that Facebook cache has been refreshed and got all the proper meta tags in the page header correctly, then verify that there are no querystring UTMs/variables your AddThis sharing link to facebook. For my purposes, Index.html couldn't include any querystring variables or AddThis passed the URL incorrectly to Facebook. The only way that worked for me looks like this:
<a href="http://api.addthis.com/oexchange/0.8/forward/facebook/offer?pco=tbx32nj-1.0&url=https%3A%2F%2Fwww.example.com%2Findex.html" target="_blank" ><img src="http://cache.addthiscdn.com/icons/v1/thumbs/32x32/facebook.png" border="0" alt="Facebook" /></a>
What Failed For Me
When trying to use the below AddThis "data_track_addressbar" and "addthis_widget.js" modules for sharing, Facebook completely fail to pull the new OpenGraph Meta Tags.
<script type="text/javascript">var addthis_config = {"data_track_addressbar":false};</script>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js"></script>

Related

Facebook scraper not being able to recognize a mysql query for a Share Button

I have been trying to implement a Facebook share button on my site and I have a handful of doubts, but I am going to post them in different posts to try to crystalize specific problems that I am finding.
Most of my site’s content is dynamically generated by users input and information stored on the database. I am currently working with a test file that has been stripped off of most of the stuff in order to clear off the noise and identify what is going wrong when Facebook scrapes my URL.
This is my code
<?php
$id=$session->user_id;
$user=User::find_by_id($id);
?>
<html>
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<!-- Open Graph meta tags -->
<meta property ="fb:app_id" content="123465"/>
<meta property="og:url" content="http://www.example.com/share_test.php" />
<meta property="og:type" content="website" />
<meta property="og:title" content="<?php echo $user->first_name; ?>" has done something. />
<meta property="og:description" content="This is what <?php echo-> $user->first_name; ?> did." />
<meta property="og:image" content="http://www.example/image.jpg" />
</head>
<body>
<!-- Inclusion of Facebook Javascript SDK and share button function here-->
<p><?php echo $user->first_name; ?> has done something</p>
<img src="image.jpg">
<div class="fb-share-button"
data-href="http://www.example.com/share_test.php"
data-layout="button_count">
</div>
</body>
</html>
I have noticed when I include certain PHP functions at the top of the file, the Debugger tool is stating that Facebook is not recognizing certain OG properties even though they are stated on my file. When click on the “See exactly what our scraper sees for your URL” there is a Database query failure. So the mysql query that goes with $user=User::find_by_id($id) can’t be done by Facebook scraper (my site is performing the call with no problem). Does anybody has any insight of how to work around this issue?
Thanks in advance.

Passing title, url and image on share.php of facebook

I want to share title , image and description on facebook without javascript just by passing these to share.php of facebook.
I got some code on this site in question Open source alternative to AddThis AddToAny, ShareThis etcfor Social Bookmarking
and I have read the question how to pass custom parameter in facebook sharer link
Now I want to combine both questions. Can I pass Image, title and description simply in the facebook share.php url
like:
<a class="scmFacebook" href='http://www.facebook.com/sharer.php?s=100&p[title]=<?php echo $title;?>&p[summary]=<?php echo $summary;?>&p[url]=<?php echo $url; ?>&&p[images][0]=<?php echo $image;?>'>Facebook</a>
OR
If I am wrong then please show me the right destination.
According to the facebook developers (bug):
The sharer will no longer accept custom parameters and facebook will pull the information that is being displayed in the preview the same way that it would appear on facebook as a post from the url OG meta tags.
Either you use the Share Button - requires Javascript SDK
Or, use the latest Share Dialog - requires just an app id. It has a direct url direction method for invoking the share dialog:
https://www.facebook.com/dialog/share?
app_id={app-id}
&display=popup
&href={link-to-share}
&redirect_uri={redirect-uri}
<head>
<meta property="og:title" content="Title" />
<meta property="og:image" content="image_link" />
<meta property="og:url" content="https://www.google.com/" />
<meta property="og:description" content="Description" />
<meta property="og:site_name" content="Google" />
</head>
<body>
Facebook
</body>
Use meta property to use title description and image and link sharer.php to share

Facebook ignores Open Graph meta data of my page

I am going crazy over this, like going gray haired instantly.
I hope someone can help me.
I am currently developing a website which has accommodations.
They have a page for each accommodation with details of that item.
Before the document is put out to the browser, I collect all meta data for Open Graph with php and output it all in the head of the document with the use of og meta tags.
A strange thing happens at all these pages, for example http://parclaclusure.internetanders.nl/nl/accommodaties/lodgetenten/
Because when I use the Facebook Debugger on that url it comes up with different results than the browser gives me in the source code.
The things I did to rule out any problems on my part:
Checked the HTML with the W3C validator, it checks out, no errors
Used an extra parameter to ensure that de meta data is not cached # Facebook, like adding ?test=1234 to the url
Search on Stackoverflow (and the rest of the interwebs) for the same problem, couldn't find any
Can anyone point out what's wrong with my og meta tags? or why they are ignored/changed in Facebook. (Facebook uses the og meta data of a page located 1 step higher -> http://parclaclusure.internetanders.nl/nl/accommodaties/)
Note: Please be discrete with the website address, because it's a development environment and not yet meant to go public, live or viral :P, thanks!
It looks like a session problem. I have the feeling a session is set after all the required data is loaded.
What I notice is that after a page refresh I see different content.
Hope this helps...
You need to check your page with the OpenGraph Debugger : https://developers.facebook.com/tools/debug/
It will update the content of your OG tags in Facebook. It doesn't update the content each time someone share your page, only on debug.
EDIT : On your code :
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/defaults/default.facebook.png" />
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/images/300x300-e04fcee6a2ba22c917d1c45e6c61b926.jpg" />
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/images/300x300-0cb0ca4759b278c22f075c781a628956.jpg" />
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/images/300x300-6c63e58a9ba8d555f277d34d2daeddc5.jpg" />
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/images/300x300-73f0f66a0d05d0bf570254f1eb7072f8.jpg" />
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/images/300x300-063fcc1f10db6bdb3e2d3c4d053f76db.jpg" />
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/images/300x300-1c0526d2cc3c916fc3c67d0b83e6f7f9.jpg" />
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/images/300x300-a850047c2225b1b9e5d5fddae1d1c7bf.jpg" />
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/images/300x300-25094d3a08fb093983dedffdcaf14c88.jpg" />
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/images/300x300-3414c0ad4780a27ad8326007ec3987ae.jpg" />
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/images/300x300-845b24160e9fe438e851a6b2fb17af17.jpg" />
<meta property="og:image" content="http://parclaclusure.internetanders.nl/uploads/images/300x300-0e2b4efe0d30745ea34afc9b01bb6eb4.jpg" />
What do you expect from this ? You are supposed to have only one OG:image metatag...

How to provide Facebook Meta tags for link to a file?

I have the following url to a file on my website:
http://www.foo.com/download/1
This downloads the file with the force_download function, using the download helper.
I've been requested to provide like buttons for these files which are displayed in a html table on one of the site's pages.
So, using facebook like button tool I've created the following button:
<div class="fb-like" data-href="http://www.foo.com/download/1" data-send="false" data-width="450" data-show-faces="false"></div>
However, because this is a direct link to the file, the correct open graph metadata is not being received e.g. the description is: "%PDF-1.3 %�ãÏÓ 1041 0 obj.."
So my question is how do I provide the open graph metadata for links to my downloads? For example:
<meta property="og:type" content="website" />
<meta property="og:url" content="http://foo.com/download/1" />
<meta property="og:title" content="Download 1" />
<meta property="og:image" content="bar.png" />
<meta property="og:description" content="File description" />
For the url that where you download the file itself you can't, since it's (probably) not an html page and even if it is, you wouldn't want to change the content of the file with your own metadata.
What you can try is use some kind of redirection on the URL used by both the clients downloading the file and the crawlers of facebook, and of course you will need an url for the real download too.
On your view sent for like and the users:
<!-- meta tags -->
<meta property="og:type" content="website" />
<meta property="og:url" content="http://foo.com/download/1" />
<!-- .... -->
<body>
<script>
// imaginary real download url url
window.location = '<?php site_url('download/real_download/'.$download_id);?>';
</script>
</body>
Facebook also doesn't seem to understand refresh meta tags, so you can write and avoid javascript usage:
<meta http-equiv="refresh" content="1;URL='<?php site_url('...')?>'">
Disclaimer: I didn't find any documentation from facebook that describe what their crawlers understand so there's no guarantee that any of these will keep working. I myself using a javascript solution for like a year now in a similar situation.

PHP, Zend, Facebook Share (Change the content)

How can I change the content of my facebook share option? my web app is written on PHP with Zend Framework. I want to change the content of the facebook share option instead of the description that was already been in the website.
If you use fb social plugin, it reads the open graph tags.
<meta property="og:title" content="title" />
<meta property="og:description" content="description" />
<meta property="og:image" content="thumbnail_image" />
You can set those in zend by using in controller
$this->view->headMeta()->setProperty('og:description','asdasdasd');
$this->view->headMeta()->setProperty('og:title',"title here");
$this->view->headMeta()->setProperty('og:image',"url");
if you dont want to use that open graph tags,
Creating Your Own Share URL
https://www.facebook.com/sharer/sharer.php?s=100&p[title]=titlehere&p[url]=http%3A%2F%2Fwww.yoururlhere.com&p[summary]=yours description
Open that URL in a browser, when user click share icon/link.
Btw, share is deprecated.
FYI: https://developers.facebook.com/docs/share/
FB Share description:
You can control the exact title, description, and thumbnail that Facebook Share uses by adding the following meta tags to the element in your page:
<meta property="og:title" content="title" />
<meta property="og:description" content="description" />
<meta property="og:image" content="thumbnail_image" />
please read more here:
regards.

Categories