Я использую Firebase для хранения пользовательских изображений. Я хочу добавить возможность для пользователя делиться этими фотографиями на Facebook. Я создал проект на Facebook разработчиков. В настоящее время я использую React, поэтому ниже приведена разбавленная версия моего компонента.
class Share extends React.Component {
componentDidMount() {
window.fbAsyncInit = function() {
//SDK loaded, initialize it
FB.init({
appId : 'app-id',
xfbml : true,
version : 'v2.6'
});
//JS SDK initialized, now you can use it
FB.XFBML.parse();
};
//load the JavaScript SDK
(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'));
}
render() {
return (
<a onClick={() => {
FB.ui({
method: 'share',
display: 'popup',
href: imageData.image_url
})
}}>Share</a>
)
}
}
/*
imageData.image_url = "https://firebasestorage.googleapis.com/v0/b/zoostagram-c0ec2.appspot.com/o/journey%2FTbewuTE9MDZaBByadZUz9kXjtK93%2F-LAucp-cHpPUWnMmn_GV%2F174915781175375011-1618340686-1759905821-1592844446-1892410559-711095936445312870.jpg?alt=media&token=5a37d0d5-2917-4783-ab4c-2dbd94734320"
*/
Открывается всплывающее окно с общим ресурсом Facebook, поэтому я предполагаю, что функция FB.init()
работает нормально. Тем не менее я получаю сообщение об ошибке во всплывающем окне: « Невозможно загрузить URL: домен этого URL не входит в домены приложения. Чтобы иметь возможность загрузить этот URL, добавьте все домены и субдомены вашего приложения в поле Домены приложения в настройках приложения."
Я пытался добавить firebasestorage.googleapis.com
к своим доменам приложений, но он не сохраняется, потому что это не URL моего сайта. Другие заметки, я использую 'create-реагировать-приложение', поэтому все еще развивается в localhost. Я также пытался запустить encodeURI(url)
& encodeURIComponent(url)
, ни один из которых не сработал.