使用Facebook SDK(JavaScript)共享Firebase存储图像

时间:2018-04-28 10:37:07

标签: javascript facebook reactjs facebook-javascript-sdk firebase-storage

我使用Firebase存储用户图片。我想为用户添加在Facebook上分享这些照片的功能。我在Facebook Developers上创建了一个项目。我目前正在使用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()功能正常工作。但是,我在弹出窗口上收到错误消息:“无法加载网址:此网址的域名未包含在应用的域中。要加载此网址,请添加所有域名和子域名您的应用在应用设置中的应用领域字段中。

我尝试将firebasestorage.googleapis.com添加到我的应用领域,但由于它不是我的网站网址,因此无法保存。其他说明,我正在使用'create-react-app',所以仍然在localhost中开发。我还试图运行encodeURI(url)&amp; encodeURIComponent(url),两者均无效。

0 个答案:

没有答案