Like this? Right now, FB is stripping out the querystrings I'm using to track.
https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fexample.com%2Fpost%2F%3Fref%3Dfb-share
Using web links ?
You can redirect the user for another url, using ?redirect_uri=http://...
Track them and redirect them again for where you want .
You can try to include variables at the url too, and query for shares, comments and likes of each url ex: ?rel=track1 .
But thats not the best option .
You should implement facebook sdk and login the users, asking for publish_actions permission,, then you need get the response of the share funcion, it will come with post_id field, but only if you login the users as i said before .
FB.ui({
method: 'share',
href: 'https://www.facebook.com/davidaugustusbarreiradias/',
}, function(response){});
If the post privacy is set to public, you can view it using the response IDs, if users post as public and if they dont delete it .
Please be more specific about what you want, and please show the code you are using .
Related
I have a website with some dynamic urls (for example a page who show event details thanks to event id in get variable), but during the share with facebook, at the first attempt the thumbnail image doesn't appear due the page isn't already fetched by facebook.
Then I must go to the debugger https://developers.facebook.com/tools/debug/og/object/ and submit every pages to get a valid thumbnail to the users.
There's a script or a way to send multiple links to this debugger, or there's another way to achieve the indexing of new pages by facebook?
You can refresh the Open Graph tags with a POST request to the Graph API, i think it´s not in the Facebook docs (at least i could not find it) - but it definitely works:
$.post('https://graph.facebook.com', {
id: 'http://www.yourdomain.com/somefile.html',
scrape: true
}, function(response) {
console.log(response);
});
Just an example with jQuery, of course you can just use CURL on the server too.
Sharing facebook photo (really a facebook photo) using mobile web app & Feed Dialog.
The problem: Cannot send facebook's photo to the Feed Dialog.
All code works great. I get all properties as they sent to the function.
FB.ui
method: "feed"
link: 'url'
app_id: myAppID
name: 'photo's name'
description: ''
caption: $('#albumName').text()
picture: 'http://myUrl.com/logo.png'
, (response) ->
if response and response.post_id
console.log 'Photo was shared'
else
console.log 'Photo was not shared. Please try again'
If I place a static photo, to represent the Picture parameter, all goes fine, But if I try to call a facebook picture I try to share, then I get a 500 server error.
GET
https://www.facebook.com/dialog/feed?access_token=...662390597_s.jpg&sdk=joey
500 (OK)
This is totally bizarre. The URL that goes to the dialog iframe, goes with all the needed parameters, including access_token.
It seems like a design issue. Like someone in facebook don't want us to pretend to be facebook when we customly share things using their feed dialog, when we share facebook photos.
Am I right?
* Problem Solved. See my answer below *
!!! Problem Solved !!!
Facebook don't accept their own CDN as a source. We need to bypass that in order to share, therefore we can reshare a facebook the photo using a proxy.
http://images.weserv.nl does the job. Facebook accept the image as a picture param, and this way you are able to reshare their posts.
Usage example (plus width and hight to improve performance)
'https://images.weserv.nl/?url=' + facebookImageUrl + '&h=200&w=200'
I can't share facebook photo use this example
when i share with (fb.ui method feed) i get 404 error on this link
https://fbexternal-a.akamaihd.net/app_full_proxy.php?app=460125687444228&v=1&size=z&cksum=047536ba625482c9b5343f2eb94a7039&src=https%3A%2F%2Fimages.weserv.nl%2F%3Furl%3Dhttps%253A%252F%252Ffbcdn-sphotos-b-a.akamaihd.net%252Fhphotos-ak-ash4%252Ft1.0-9%252F10157304_1383818341898181_8685912667835736794_n.jpg%26h%3D200%26w%3D200"
"app=460125687444228
cksum=047536ba625482c9b5343f2eb94a7039
size=z
src=https://images.weserv.nl/?url=https%3A%2F%2Ffbcdn-sphotos-b-a.akamaihd.net%2Fhphotos-ak-ash4%2Ft1.0-9%2F10157304_1383818341898181_8685912667835736794_n.jpg&h=200&w=200
v=1"
Where my error ?
Facebook recently changed its publish API to prevent post on another user's wall and we should use their share dialogue.
Facebook documentation about publish
I need to share a photo to my friend's wall and I could achieve this using /USER_ID/feed post by specifying a post parameter named object_attachment. Now they have removed /USER_ID/feed post on another user's wall.
So my chances are to follow their share dialogue. But share dialogue will not accept object_attachment parameter of any kind and I can not share photo to my friend's wall or timeline.
Can any one help me?
As you rightly mentioned, Facebook have removed the ability to post via the graph API to another user's feed.
You can, however, use their FB.ui({ method: 'feed' }) feed dialog Javascript dialog combined with target_id: to prompt the user to post to one of their friends' walls.
The accepted parameters are listed on the documentation page and no, you can't attach anything.
One alternative is to create a unique resource for each photo you would have uploaded which contains open graph meta tags, with which you can describe a thumbnail (og:image and og:image:secure_url).
Another alternative is to upload the photo to the current user's album, then to tag the user's friend in that photo:
//Tag friend_to_tag_id at position (x_coordinate, y_coordinate)
$post_url = "https://graph.facebook.com/"
.$photo_id . "/tags/" . $friend_to_tag_id
. "?access_token=". $access_token
. "&x=" . $x_coordinate . "&y=" . $y_coordinate . "&method=POST";
$response = file_get_contents($post_url);
Is it possible to post on a page with a url scheme?
I currently have this, fb://profile/325899700848032
But this only opens the page ofcourse. What i mean is something like this
fb://profile/325899700848032/PostMessage/"test message" or ../PostImage/image
Is anything like this possible to do?
Thanks!
To post on facebook page you need to ask first for the famous manage_pages authorization. Once you have it you make a FBRequest on the openGraph for me/accounts which return an array of the current user pages and other application. You parse this json for each page and you pick the token_access and the id. You then set the page token access on your facebook manager and then you can post for example a picture to the page with the "{id}/photos" POST graph request {id} being the page id.
I have a website called example.com with several internal pages that are liked.
I created a FB app.
when a user authenticates the FB app, I want to fetch ALL user likes such as: example.com/page1, example.com/page2, etc.
(a single user can have up to 100+ likes on the internal pages of example.com) I essentially want to get all the liked URL's (and associated FB graph ID) the authenticated user has made on my example.com website.
is there a way to do this?
perhaps via a facebook.api call? or perhaps a FQL query? I am open to PHP or JS.
please help! thanks.
...fyi, My initial thought is to for each user, fetch ALL their likes, parse through each one to make sure it came from example.com, and then store those like URL's into a local database. when the user re-visits the site, I will query my database for likes associated with that user. this did not seem the most efficient as it would require storing all likes ever made on my website. any help would be much appreciated.
If you just want to store when a user likes a page on your website why not make use of the edge.create and edge.remove events the Facebook JS SDK provides? Example:
FB.Event.subscribe('edge.create', function(targetUrl, elm) {
// Make a request to server to save 'Like' information
});
FB.Event.subscribe('edge.remove', function(targetUrl, elm) {
// Make a request to server to remove 'Like' information
});
I see in the attributes of the like plugin, that the ref attribute might be what you could use to determine where a like came from. Of course your href attribute would need to be the same on all locations of the like button.
Or, you can register your site with facebook insights and track it there. See https://www.facebook.com/insights/
The User API reference is here: https://developers.facebook.com/docs/reference/api/user/
Here's how you get all the likes via the JS API (unless they're more than one page, they you get a subset of the likes):
FB.api('/me/likes', function(response) {
console.log(response);
});
You need to be logged in, and you need the user_likes permission.