繁体   English   中英

如何在不使用URL的情况下在Facebook上分享我的新闻

[英]How can I share my news in facebook without using an URL

我正试图在我的项目中加入一个按钮,允许人们在Facebook上分享文章。

我希望在facebook分享窗口中显示用户点击分享的标题和新闻图片。

但是我没有这样做,因为在这个项目中,我展示了每个新闻的摘要,每个新闻都有一个链接“阅读全文”和一个“分享”的链接。

问题是,当我点击“阅读全文”时,我的完整文章在一个没有任何网址的fancybox中打开...所以这是我的难度,如何在没有网址的情况下在facebook上分享我的新闻?

我真的很难理解每条新闻如何在Facebook上分享,因为我的新闻没有网址。

你有没有看到某种方式来实现我的目标?

这是我的PHP:

//while exist news records in database

while ($result = $readNews->fetch(PDO::FETCH_ASSOC)){
    echo '<article class="news">';
        echo '<img class="img" src="'.BASE.'/uploads/news/'.$result['thumb'].'"/> ';
        echo '<h2>'.$result['title'].'<br /></h2>';
        echo '<span>'$result['date']).'</strong></span>';
        echo '<p>'.$result['content].'
            <a  id="'.$result['id_news'].'" 
            class="fancybox" href="#window_fancybox'.$result['id_news'].'">
            See full article </a>
        </p>';  

        //my share link
        echo '<a title="share" class="share" href="'.BASE.'">Share</a>';

        //When I click in "See full article"
        // it will open a fancybox with full article 
        echo '<div id="window_fancybox'.$result['id_news'].'" class="modal">';
        echo '<h2>'.$resultt['title'].'</h2>';
        echo '<span>'.$result['date'].'</span><br />';
        echo '<img class="img" src="'.BASE.'/uploads/news/'.$result['thumb'].'"/>';
        echo '<p>'.$result['content'].'</p>';
        echo '<span class="close_fancy">Close modal</span>';
        echo '</div>';
    echo '</article>';
}

这是我在Facebook上分享的脚本:

$('.share').click(function(){
    urlshare = $(this).attr('href');
    alert(urlshare);
    window.open('http://www.facebook.com/sharer.php?u=' +urlshare,'My website',"width=500,height=400,status=yes,toolbar=no,menubar=no,location=no");
    return false;
})

你可以在这里看到我的例子:(我的fancybox共享窗口全部打开白色)

http://ei-test.netau.net/#fancybox_window1

没有自己测试,但这是我理解它:

当悬停时(也可能在点击时) 查看完整文章 ,以#window_fancybox_SOMETHING_结尾的URL应该是apear。

这是您需要提供给Facebook的网址。

试试这个,我知道这是不好的补丁,但它的工作原理:)

$(document).ready(function() {
    var popupURL = location.href.split("#");
    if(popupURL.length > 1) {
        var action = popupURL[popupURL.length-1];
        $('a.fancybox[href="#'+action+'"]').trigger("click");
    }
});

我想知道的事情,您是否使用netau主机或类似的东西? 这些域名及其子域名由Facebook保护。 当您在https://www.facebook.com/sharer/sharer.php?u=中使用它时,它会给出空白页面。 如果你知道的话,我会写下这些线来了解你。

并且,如果您使用的是有效的网址并且没有从Facebook获得保护,那么您想要的内容就不会出现大问题。 你不会得到那个空白页面。 但你的想法中有问题的一点是,facebook从你的页面的html获取标题,描述和图像“新闻缩略图”,所以当每个人点击分享按钮时,获得相同的标题,描述和缩略图。 所以要处理我建议在单个页面中的场景后面制作一个小脚本来处理它。 如果这有意义告诉我,我会很乐意提供帮助。

转到Facebook开发人员页面并创建一个应用程序并将其添加到您页面的正文中

<div id="fb-root">
</div>
<script>        (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#xfbml=1&appId=YOUR_APP_ID&version=v2.0";
        fjs.parentNode.insertBefore(js, fjs);
    } (document, 'script', 'facebook-jssdk'));
</script>

用你从facebook获得的appid替换YOUR_APP_ID

并将其添加到您想要分享按钮的位置..

<div class="fb-like" data-layout="standard" data-action="like" data-show-faces="false"
                data-share="true" width="100px">

为Facebook使用的共享图像添加元标记

<meta property="og:image" content="http://www.example.com/images/logo.png" />

您的托管似乎不支持在Facebook上分享。 在Facebook上分享任何链接的短代码链接是:

http://www.facebook.com/sharer.php?u= &t= 

其中, uurlt是网页的title

现在,当我尝试使用以下链接在Facebook上分享您的文章时:

https://www.facebook.com/sharer/sharer.php?u=http://ei-test.netau.net/&t=United%20FC%20win%20the%20game

什么都没有显示出来。 但是,如果您尝试其他链接,例如:

https://www.facebook.com/sharer/sharer.php?u=http://www.infismash.com/hover-social-buttons-wordpress/&t=United%20FC%20win%20the%20game

它清楚地显示了Facebook上的共享选项。

基本上,我认为如果您尝试其他主机,您的问题将得到解决。 此外,请记住,许多Facebook不支持许多免费托管网站。

由于您想要共享单独的modal windows ,您可以尝试为每个模态窗口提供一个标识符,例如#identifier-1.fancybox-overlay .fancybox-overlay-fixed 看看identifier-1 这个1将是每个帖子的id 因此,当任何人点击您的链接(如http://ei-test.netau.net/#identifier-1 ,将打开一个窗口,其中模式处于活动状态。

Facebook sharer.php已被弃用,您需要使用他们的“分享对话”,这需要在Facebook上为您的域设置APP ID。

https://www.facebook.com/dialog/share?
app_id=145634995501895
&display=popup
&href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2F
&redirect_uri=https%3A%2F%2Fdevelopers.facebook.com%2Ftools%2Fexplorer

但是,此方法会从您提供的网址中提取元数据,您可以使用其JavaScript API为您的共享提供唯一的标题,说明和网址。

参考: https//developers.facebook.com/docs/sharing/reference/share-dialog#redirect https://developers.facebook.com/docs/javascript/quickstart/v2.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM