I've set up Facebook login on my site, and have done a couple of test wall posts when certain user actions occur. I tested it on my FB account, and the posts turned up on my wall (good).
Immediately I had a couple of friends email saying, 'how do I turn these notifications off, they're filling up my feed'.
I'm guessing this isn't a good way to promote my app - it'll piss people off. Unless I have an option at the time of the app action for the user to say 'yes, post to my wall.'
I notice that my posts were also coming up in the activity ticker (on the right of your profile page), and that a lot of game apps post player activity there - is it possible to just post to that and not to the wall? If so, what do I code instead of "/me/feed", "post"?
Thanks
In the activity ticker it is actually the updates from the Users or pages or apps are displayed which actually come from , if you go back to their wall and see, their respective wall.
Feeds are usually the updates and those also come from wall.
One thing which you can do is when providing permission to your app you can make it visible to you only(Only me option) so that none of your friends gets it in his/her feed.
Otherwise there is no other way for now.
Instead of directly making a post through graph API use Fb.ui feed method. This will open a popup dialog which user can accept to be published on wall or cancel:
FB.ui(
{
method: 'feed',
name: 'Facebook Dialogs',
link: 'https://developers.facebook.com/docs/reference/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
caption: 'Reference Documentation',
description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
},
function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
}
);
note:all links here should point to domain specified by you in canvas url
A better approach would be to use open graph actions instead a just posting a story on wall. Open graph actions are seen in Activity section of your timeline. The stories are small hence does not seem like spamming user wall. If the number of posts is high it is aggregated/clubbed together.
Related
This question already has answers here:
facebook open graph action only shows up in "recent activity", not as individual post
(2 answers)
Closed 9 years ago.
I've made an app with open graph.
Once I publish an action, it doesn't publish on my wall.
It publishes on the activity feed instead.
Here is my code for publishing
function postCook()
{
FB.api(
'/me/[my app namespace]:cook?'
,
'post',
{ recipe: 'http://www.xxx.com/Sample.html'
,access_token : 'MY TOKEN'},
function(response) {
if (!response || response.error) {
alert( response.error.message );
} else {
alert('Cook was successful! Action ID: ' + response.id);
}
});
}
I also tried to follow the instruction here Tutorial
According to this tutorial, I've seen that Open Graph can publish to News Feed.
But I cannot make my app publish to News Feed.
Do I have to set any parameters to force it to publish on News feed (on my wall)?
Which permission I have to request?
publish_actions or publish_stream?
Thanks,
You cannot force Open Graph actions to be published to the news feed. Facebook keep tight control over the feed and by default, your OG actions always get published to the activity feed. And sometime only do they reach the News Feed (of your friends - never seen mine in my own feed).
So that's it, you cannot force it. Although, don't worry too much about this, OG actions actually get published often enough to allow "virality" of your app, and good reach of new user. It's definitly better than a share action, even if this one get published to the News Feed instantly.
I am using JavaScript SDK to implement feed functionality. Here is my problem, if a user is logged-in and clicked on share button, Facebook is able to see the post in the timeline, but it is not reflecting in home page.
How can I solve this?
I am using this code -
FB.init({appId: "XXXXXXXXX",show_error:true, status: true, cookie: true});
function postToFeed() {
// calling the API ...
var obj = {
method: 'feed',
link: 'https://developers.facebook.com/docs/reference/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
name: 'Facebook Dialogs',
caption: 'Reference Documentation',
description: 'Using Dialogs to interact with users.'
};
FB.ui(obj, callback);
}
You can't decide what appears on the homepage. It depends on the users settings and on how Facebook decides to promote certain types of content.
The homepage is just a condensation of all your friend's/subscription's/page's timelines'. When you share a URL - you share it on your timeline and never share it to the homepage.
This is the expected behavior.
If your application posts something to a users timeline, it is most likely that his/her friends will see it on their homepage but there is currently no way to ensure this. Take for example a situation where one of your users share's a URL but their friends only come into Facebook 2 days later - you can't expect that story to still appear on their homepage after so much time has passed. Like I said - it is likely going to appear on the homepage at some stage - but you have no control over that.
I have a small game in my website, and i want people to post their best time in facebook. To do this, i made an app, and then use the following link:
https://www.facebook.com/dialog/feed?app_id=363262997057304&name=Myname&link=http://www.mywebsite.com&redirect_uri=http://www.mywebsite.com&description=MyDescription
But i dont know how could I do it to populate the message field. what could I do?
The message parameter is deprecated,
also you can use FBJS API to post in a user feed,
function postToFeed() {
var obj = {
method: 'feed',
link: 'https://apps.facebook.com/APP_NAMESPACE/',
picture: 'https://domain.tld/75x75.jpg',
name: 'TITLE',
caption: 'CAPTION',
description: 'My Score: '+score
};
FB.ui(obj);
}
but you have to ask the user for publish_stream permissions first.
You are not supposed to prefill the message field, asper Facebook, unless from a natural flow, such as a user typing in a textbox and sending to the message field on a submit. You should use the description, caption fields for your purpose.
Since you have a game app, all you need to do is to publish their score using the games score API described here: http://developers.facebook.com/docs/score/
From: http://developers.facebook.com/docs/guides/games/
Scores and Achievements
Scores and achievements APIs are built on Open Graph and receive the
same distribution points that all Open Graph stories do - Ticker,
Newsfeed and Timeline. In addition to these scores and achievements
also benefit from built in aggregations and stories that have been
designed by Facebook.
I am primarly ASP.NET(HTML,Js) programmer and I don't know anything about Fb apps. Recently I stumbled on a problem. I have web application that generates image buttons and generates code as HTML or Iframe for user to post on different websites, however as far as I know: It is not possible for user to embbed Iframe or post image wrapped with link to friends wall?
So before I start researching how to do anything on Facebook and go on wild goose chase, I just wanted to check with fellow programmers that might have experiences with this kind of stuff is it even possible to do this on Facebook?
If it is possible, can you give me some hints how the process goes or point me to some articles?
Any help is appreciated, thanks!
No, it is not possible to post iframes to a user's wall.
To be more specific, to post to a wall, we use Feed dialogs (with FB.ui), You can derive what you can and can't do from the list of parameters that FB.ui gets (scroll to "properties" in the feed dialog doc)
To show the "post to wall" dialog, you need to do something like this:
FB.ui({
method: 'feed',
link: "link",
picture: "picture",
name: "name",
caption: "caption",
description: "description"
}, callback);
I have a website where there is comments systems. I want to add a comment to facebook while adding a comment to my website.
If it is not possible to add to Facebook while adding to my site is it possible to show share to facebook button with each comments so that clicking on it will share that comment on facebook. May be possible with fb.in?
Not 100% sure, but it sounds like you have your own comment system on your web site and that you'd like to auto-publish to FB the comment that someone makes on your own site.
You'd need to implement the Facebook SDK on your web site:
Have your user authorize your site using 'FB.login' with 'publish_stream' permission (see docs).
In your comment system code, after your user has entered in their comment, you can make a separate call to the Graph API to publish to the user's feed. For example, if using the Facebook Javascript SDK:
Following is the code:
var body = myJustEnteredComment;
FB.api('/me/feed', 'post', { message: body }, function(response)
{
if (!response || response.error)
{
alert('Error!');
}
});