I just realized that when we using facebook api to create a livestream ( /me/live_videos ) , we only get 360p as output max even we sent 1080p. But, if we use Facebook dialog, we can get to 720p, the same video input.
FB.ui({
display: 'popup',
method: 'live_broadcast',
phase: 'create',
}, function(response) {
FB.ui({
display: 'popup',
method: 'live_broadcast',
phase: 'publish',
broadcast_data: response
}, function(response) {
});
});
https://developers.facebook.com/docs/graph-api/reference/live-video/
Does anyone know how to get 720p when we use Facebook graph API ?
Related
I have a Go Live button on my site. It connects fine to Timelines and Fan Pages I manage but when I connect to a Group(Public or Closed) it fails. Does anyone know why or found a solution around this? This is the code that I am using.
<script>
document.getElementById('liveButton').onclick = function() {
FB.ui({
display: 'popup',
method: 'live_broadcast',
phase: 'create',
}, function(response) {
if (!response.id) {
alert('The broadcast connection to Facebook has been closed.');
return;
}
//alert('stream url:' + response.secure_stream_url);
FB.ui({
display: 'popup',
method: 'live_broadcast',
phase: 'publish',
broadcast_data: response,
}, function(response) {
//alert("video status: \n" + response.status);
});
});
};
</script>
http://s-nowproject.ru/GREET-7D841B7FB2E6E912B1B35B3B112545F7 - example
When someone try share with facebook, all ok.
But when share with Iphone 5/6 there is no share button, because link open official app without share button.
Only preview.
Is it problem with facebook app?
What I see:
What I want:
Not working variant, but without errors, and without button for share:
FB.ui({
method: 'share',
href: getUrlA(this)
}, function (response) {
});
Working variant:
FB.login(function(response) {
FB.ui({
method: 'share',
href: getUrlA(this)
}, function (response) {
});
});
I'm messing around with an Angular app, let's say for the sake of argument that I'm not using any meta tags, how can I use the Share Dialog to let users share pages of my app?
Using the old Feed Dialog works, but it has been deprecated:
$scope.share = function() {
FB.ui({
method: 'feed',
name: 'This is the name field',
link: 'The link',
picture: 'The picture',
caption: 'The caption',
description: 'This is the content of the "description" field, below the caption.'
})
},
function(response) {
if (response && !response.error_code) {
console.log('Posting completed.');
} else {
console.log('Error while posting.');
}
});
};
So even though this works, I want to use the Share Diolog in the same way but I'm not figuring it out. This is sort of what I've been trying, keep in mind that I'm a newbie:
$scope.share = function() {
FB.ui({
method: 'share_open_graph',
action_type: 'og.likes',
action_properties: JSON.stringify({
object: {
'title': 'The title',
'image': 'An image',
'url': $scope.shareUrl,
'description': 'This is the description',
}
})
},
function(response) {
if (response && !response.error_code) {
console.log('Posting completed.');
} else {
console.log('Error while posting.');
}
});
};
Any hints?
The short answer is that you can't, you must use OpenGraph meta tags.
Since Facebook doesn't understand JavaScript and thus Angular, you must detect Facebook's crawlers server-side and render a static page for them instead of the Angular app.
While the precise implementation will vary depending on your server technologies, here's the general idea:
Setup a route for the resources that need sharing: http://example.com/resources/:id
Look for the user-agent
If it's one of Facebook's crawlers, fetch the resource and render a simple view with OpenGraph tags and an empty body. Otherwise, simply render the Angular app.
Facebook's crawlers are available here and they currently are:
facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
facebookexternalhit/1.1
Facebot
I have a problem with the Facebook Messenger app. I have a mobile web app with two buttons, one for inviting friends (app request) and one for posting to the wall.
<a onClick="sendRequestViaMultiFriendSelector(1);">Invite</a>
<a onClick="postToFeed(1);">Share</a>
The functions are:
function sendRequestViaMultiFriendSelector(selectedPizza) {
FB.ui({
method: 'apprequests',
message: 'Message',
title: 'Caption',
data: {"pizza_id" : selectedPizza, "act" : 'redirect'}
}, requestCallback);
}
function postToFeed(selectedPizza) {
FB.ui({
method: 'feed',
link: 'link',
picture: 'src',
name: 'name',
caption: 'caption',
description: 'desc'
}, requestCallback);
}
function requestCallback(response) {
}
I test this by clicking on a link to the app (apps.facebook.com/namespace...) in a private message. This works in the Facebook iPhone App, but not in the Facebook Messenger App for iPhone. Nothing happens when the buttons are clicked.
I development facebook private message for invite with facebook api.
<script>
FB.init({ appId: 'xxxxxxxxxx', xfbml: true, cookie: true });
FB.ui({
method: 'send',
to: ['1736383768','590528674'],
// picture: 'http://thinkdiff.net/iphone/lucky7_ios.jpg',
//Can be page, popup, iframe, or touch.
display: 'popup',
name: 'yyyyyy',
link: '<%=Request.QueryString["link"]%>'
});
</script>
but adds only the first mate.
how to multiple friends send private message ?
var publish =
{
method: 'stream.publish',
message: 'Some kind of test',
uid: uid,
attachment: {
name: 'Test',
caption: 'Facebook API Test',
description: ('Sure hope it worked!'),
href: 'http://www.test.com/',
media: [
{
type: 'image',
href: 'http://test.com/',
src: 'http://test.com/image.jpg'
}
]
},
action_links: [
{ text: 'Your text', href: 'http://www.test.com/' }
],
user_prompt_message: 'Share your thoughts about test'
};
publish.target_id = friendID;
FB.ui(publish);
publish.target_id = friendID;
FB.ui(publish);
return false;
You should not use stream.publish.
As said by facebook : "We are in the process of deprecating the REST API, so if you are building a new application you shouldn't use this function. Instead use the Graph API and POST a Post object to the feed connection of the User object"
So, now you have the send and feed methods left.
You cannot fill the send method with more than one user id (you can only if you are whitelisted by facebook, but I'm not quite sur how to do this , I would not count on it either).
You can use the feed method to post on many user's friends wall with something like this
FB.api('/USERID/feed', 'post', {
name:postName,
link:postLink,
picture:postPicture,
description:postDescription,
message:postMessage
}, function (postResponse) { //DO SOMETHING HERE });
But doing it, you are taking the risk of your app being deleted by facebook if someone flag it as spam.
As far as I know, sending messages to multiple friends via an App is considered bad/spam by facebook so they do not allow this anymore.
You still can Invite as many friends as you want via the App request dialog (method apprequests) but I'm not sure this is what you want.