Ich arbeite mit Facebook js SDK "Go Live Dialog" für Live-Streaming, alles funktioniert gut bis zum letzten Schritt, wenn ich den Stream veröffentlichen möchte und ich kann nicht veröffentlichen, weil es ein CORS-Fehler:Facebook JS SDK CORS Probleme
XMLHttpRequest kann https://graph2.facebook.com/v2.5/10154376393778843?access_token=EAAOAPyi8mX....&suppress_http_code=1 nicht geladen werden. Die Antwort auf die Preflight-Anforderung besteht keine Prüfung der Zugriffssteuerung: Der Header 'Access-Control-Allow-Origin' enthält mehrere Werte '*, https://www.facebook.com/', aber nur eine ist zulässig. Origin 'https://www.facebook.com/' ist daher nicht erlaubt.
das Problem ist aufgrund graph2.facebook.com sendet CORS zweimal Header:
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: https://facebook.com/
und Google Chrome akzeptiert nur einen.
Ich habe es als bug on facebook geöffnet, aber bis jetzt ihre Antworten sind "deaktivieren CORS Sicherheit" auf meinem Browser, eine schlechte Lösung, wenn ich meine App für jeden öffentlich machen möchte.
Der Code für die App ist dies:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '452751035113070',
xfbml : true,
version : 'v2.8'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<button id="liveButton">Create Live Stream To Facebook</button>
<script>
document.getElementById('liveButton').onclick = function() {
FB.ui({
display: 'popup',
method: 'live_broadcast',
phase: 'create',
}, function(response) {
if (!response.id) {
alert('dialog canceled');
return;
}
console.log('stream url:' + response.secure_stream_url);
FB.ui({
display: 'popup',
method: 'live_broadcast',
phase: 'publish',
broadcast_data: response,
}, function(response) {
console.log("video status: \n" + response.status);
});
});
};
</script>
hier auch hier: https://plnkr.co/edit/Aq0hkCTh5suXfOl6qKuN?p=preview. Um einen wirklichen Versuch zu machen, sollten Sie ein Streaming mit wowza oder ähnlichem starten, wenn nicht, ist die Schaltfläche zum Veröffentlichen deaktiviert und das Problem tritt auf, wenn ich auf die Schaltfläche zum Veröffentlichen klicke.
wusste jemand, wie man damit umgeht, damit alle Benutzer das Skript verwenden und sie zwingen, andere Browser zu verwenden oder die Sicherheitsoptionen zu deaktivieren? oder muss ich warten bis facebook es repariert?