Post directly to facebook group wall - facebook

I've been trying to post some data from my webpage directly to a facebook group wall. Is is possible to achieve?
Here's a code i used:
$.getScript('//connect.facebook.net/en_UK/all.js', function(){
FB.init({
appId : myAppId,
xfbml : true,
version : 'v2.0'
});
FB.api('/groupId/feed', 'post', { link: 'linkToMyPage', name: 'Name' } , function(response) {
if (!response || response.error) {
alert('Error occured');
} else {
alert('Success!');
}
});
Any help will be appreciated!

By comparing your code against Facebook's sample code, I noticed that you need to capitialize "POST", also their code nests { link: 'linkToMyPage', name: 'Name' }' within an Object block. So I am thinking you should replace the link and name with something similar to:
"object": {
"link": linkToMyPage,
"name": 'Name'
}
Here is the API doc, which describes how to publish to a Group feed.

Related

How to post on a facebook test page?

I'm trying to post on a test Facebook page, but it wouldn't work here's what I did:
window.FB.api(
'/https://graph.facebook.com/700757323715208/feed',
'POST',
{message:"Hello Fans", access_token:"{access_token}"
},
function(response) {
console.log(response) }
);
and it's rendering this:
{id: "2568244933261615", url: "https://graph.facebook.com/700757323715208/feed"}
But it's supposed to render something like this :
{
"id":"1116692661689527",
"post_id":"546349135390552_1116692711689522"
}
Correct version:
window.FB.api(
'/me/feed',
'POST',
{message:"Hello Fans", access_token:"{access_token}"
}, function(response) {
console.log(response);
});
You do not need the Page ID, you have to use a Page Token of that Page anyway.

how to post few images with message on facebook

I'm interested to create a post on my page or my feed with few images from my album and some text which will contain some message and some link / handle ( to facebook friend or page )
For now i've tried to create an album, add few images to it but i don't have almost no control of what th description is going to be.
FB.login(function () {
FB.api("/me/accounts", function (response) {
FB.api(
"/usetoken/albums",
"POST",
{
"name": "My Album",
"message": "Some Message",
"access_token": response.data[0].access_token
},
function (response) {
debugger;
if (response && !response.error) {
debugger;
/* handle the result */
}
}
);
});
}, { scope: 'publish_actions,user_photos,manage_pages' });
function post_image() {
FB.api(
"/albumid/photos",
"POST",
{
"url": "imageurl",
"access_token": access_token
},
function (response) {
if (response && !response.error) {
debugger;
/* handle the result */
}
}
);
}
If you really want to publish rich content, you should use Notes.
When you create an album, it will be shown as a status of your page/profile. The status message of that status will be the album description. So you can insert your message into the album description, and you should be ok.

Publishing on users time line using facebook javascript sdk

I have been using Graph API along with javascript facebook sdk to make posts on users wall. The code looks like this
function graphStreamPublish(){
showLoader(true);
FB.api('/me/feed', 'post',
{
message : "Sample Message",
link : 'link url',
picture : 'image url',
name : 'app name',
description : 'Test stuff'
},
function(response) {
showLoader(false);
if (!response || response.error) {
alert('Error occured');
} else {
alert('Post ID: ' + response.id);
}
});
}
Can this piece of code be used to post on users timeline as well or is there something else I need to do?
The following code works. ( Notice the 'publish_actions' permission used at the end).
FB.login(function(response) {
// handle the response
if (response.status === 'connected') {// Logged into your app and Facebook.
FB.api('/me/feed', 'post',
{
message : "Sample Message",
name : 'app name',
description : 'Test stuff'
},
function(response) {
if (!response || response.error) {
alert(response.error);
} else {
alert('Post ID: ' + response.id);
}
});
}
}, {scope: 'public_profile,email,publish_actions'} );
Years ago, you could use field TO with user id, nowadays you cant post to users timeline, but you can use TO field with an ID, for posting on groups, events or pages .

Delete facebook comment from my site or facebook Javascript SDK

I am using facebook javascript SDK to post comment on facebook and using this code:
FB.init({
//appId: 'YOUR_APP_ID', cookie: true,
appId: '2697XXXXXXXXXX098', cookie: true,
status: true, xfbml: true
});
FB.ui({
method: 'feed',
name: 'MyComment',
link: 'http://www.facebook.com./',
picture: 'http://xyz.com/App_Shared/Images/logo.jpg',
caption: 'Comment caption',
description: 'comment description',
message: 'Join facebook.'
}, function (response) {
if (response && response.post_id) {
alert('Post was published.' + response.post_id);
} else {
alert('Post was not published.');
}
});
and now i want to delete this post by using the same type of js code.
I saved post_id in my database.
Can you provide me the code or any URL to do this.....
First of all you must give to access to you application and allow by user according to this URL
http://developers.facebook.com/docs/reference/api/permissions/
These permission you can use like this method
FB.login(function (response) {
if (response.authResponse) {
FB.api('/me', function (response) {
jQuery('#hdfUID1').val(response.id);
jQuery('#btnFBLoginTemp').click();
// FB.logout(function (response) {
// });
});
} else {
jQuery('#hdfUID1').val('');
}
}, { scope: 'email,user_photos,read_stream,publish_stream,offline_access' });
if user allow these permissions then you can delete comment from user's wall which was posted by your application by using "Anatoly Lubarsky" answer method....
FB.api(postId, 'delete', function(response) {
// callback here
});
should be very simple like:
FB.api(postId, 'delete', function(response) {
// callback here
});
hope this helps

Setting Facebook Publish Stream URLs

I am using facebook publishStream method in Facebook FBML Application, some other developer worked on it before me. I am using it some thing like this
Facebook.streamPublish('Publish Shirt Tale. <?php echo $canvasURL.'?req=tale-details&tale_id='.$tale_id?>', attachment);
But there is another url that is under the shared image, see below image for more info
So as in image there is encircle link, so that points towards some other page while I want it to the first page of app. It currently goes to a page some thing like this: http://apps.facebook.com/apps/application.php?id=xxxxxxxxxxxxx
so can any one tell that where can I specify that URL?
Thanks in advance
As per facebook is deprecating all FBML apps soon, I would advise you to look here, and try and create a dialog in this way. I can give you the script I'm currently using, where the link you circled directs to my app's home page. a note should be made- my app is an Iframe app.
<script type="text/javascript">
FB.ui(
{
method: 'stream.publish',
attachment: {
name: 'name',
caption: 'caption',
source: 'picture.jpg',
picture: 'picture.jpg',
description: 'description',
href: 'http://apps.facebook.com/appname'
},
action_links: [
{ text: 'name', href: 'http://apps.facebook.com/appname' }
]
},
function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
}
);
</script>
If you however you would like to keep your app in the FBML form, try this code:
<script type="text/javascript">
FB.ui(
{
method: 'stream.publish',
attachment: {
name: 'name',
caption: 'caption',
source: 'picture.jpg',
picture: 'picture.jpg',
description: 'description',
href: 'http://apps.facebook.com/appname/index.php'
},
action_links: [
{ text: 'name', href: 'http://apps.facebook.com/appname/index.php' }
]
},
function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
}
);
</script>
You need to understand the difference between Iframe and FBML apps: While Iframe apps make the user stay in the same page all the time, and only the content in the Iframe is changes, FBML application actually move the user from page to page. Because of this, when specifying links in FBML apps, it is important to use the http://apps.facebook.com/appname/page link instead of the http://www.yoursite.com/page link.
Example links:
A link on your site: http://www.yoursite.com/game1.php
Would look like this in an FBML app: http://apps.facebook.com/appname/game1.php
ok Hafiz then try this code.
FB.ui({
method: 'stream.publish',
message:'hello',
attachment: {
name: title,
caption: "I'm running!",
media: [{
type: 'image',
href: 'http://www.yoursite.com/',
src: 'http://www.yoursite.com/images/working.jpeg'
}]
},
action_links: [{
text: 'Get your percentage',
href: 'http://www.yoursite/'
}],
user_message_prompt: 'Tell your friends about Get your percentage:'
});