web怎么將動態內容分享到Facebook,Twitter等社交平臺?

    雖然國內上這些社交平臺有一些困難,但作為主要的國外平臺,還是需要了解一下的。一起來看看,web怎么將動態內容分享到Facebook,Twitter等社交平臺吧

    雖然國內上這些社交平臺有一些困難,但作為主要的國外平臺,還是需要了解一下的。一起來看看,web怎么將動態內容分享到Facebook,Twitter等社交平臺吧。

    對固定內容的分享,我們可以查看文檔(Fb分享文檔,?TW card)后就大概知道怎么去做。但如果我們想對動態內容進行分享,比如我們想把用戶的昵稱加到分享里,應該怎么做呢?
    我們可以先了解一下”分享”的大致過程。

    社交平臺如何對頁面抓取分享信息

    社交平臺是會抓取目標頁面的代碼(注意是服務器返回的html代碼,由js操作后的html它們是抓不到的),
    然后對html中的<title/><meta/>標簽進行分析。一般來說<title/>會作為要分享的標題,<meta name="description" content="">會作為分享的正文。這是最基本的兩個抓取點。
    另外的可選的抓取點則是其他meta標簽,比如插入圖片的meta標簽是:

    <meta property="og:image" content="圖片地址" /> <!-- facebook -->
    <meta name="twitter:image" content="圖片地址" /> <!-- twitter -->
    

    所有相關的meta寫法請參考平臺開發文檔,或者查看這篇文章來大致了解(英文的,我都能大概看懂,請放心看):
    What You Need to Know About Open Graph Meta …

    就是說如果你的html像這樣:

    ...
    <meta property="og:image" content="xxx" /> <!-- facebook -->
    <meta name="twitter:image" content="xxx" /><!-- twitter-->
    <meta name="description" content="雷好,我系要分享的內容balabala...">
    <title>這是標題</title>

    最后社交平臺會解析出來你的要分享的信息,并加上平臺自己的樣式(此處以twitter效果為例):

    web怎么將動態內容分享到Facebook,Twitter等社交平臺?

    js分享操作

    有了填寫好<title><meta>的頁面。接下來是對頁面地址進行分享的操作。

    Facebook

    首先先引入fb的sdk:

    <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;
      //下面填入一個你的app id,如果還沒,請在fb開發者平臺注冊一個
      js.src = "http://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.8&appId={your app id}"; 
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>
    

    觸發事件進行分享示例:

    var shareToFbBtn = document.getElementById('fb-btn');
    shareToFbBtn.onclick = function(){
      FB.ui({
        method: 'share',
        href: "htttp://www.eaxmple.com/share.html" //這里換成你的網址
      }, function(response){
        //分享回調
      })
    }

    Twitter

    簡單的tw分享并不需要調用sdk,只需要跳轉到一個特定頁面:

    var shareToTwBtn = document.getElementById('tw-btn');
    var twTitle = '輸入標題';
    var twUrl = '要分享的頁面地址';
    shareToTwBtn.onclick = function(){
         window.open('http://twitter.com/home/?status='.concat(encodeURIComponent(twTitle)).concat(' ').concat(encodeURIComponent(twUrl))
    }

    服務端生成html

    當我們知道如何對頁面進行分享操作以后,就要考慮怎樣對這個頁面進行動態內容的生成將要被抓取的html代碼。這就需要服務端腳本寫一個頁面(一下為php實現),代碼解說加在注釋中方便查看:

    <?php
    //如果傳入image參數就生成相關的meta,以下幾條類似
    if(isset($_GET["image"])){
    	$image=$_GET["image"]; 
    	$meta_image_fb = '<meta property="og:image" content="'.$image.'" />';
    	$meta_image_tw = '<meta name="twitter:image" content="'.$image.'" />';
    }
    if(isset($_GET["description"])){
    	$description=$_GET["description"];
    }
    if(isset($_GET["title"])){
    	$title=$_GET["title"];
    	$meta_title = '<meta property="og:title" content="'.$title.'" />';
    	$meta_title = '<meta name="twitter:title" content="'.$title.'" />';
    }
    if(isset($_GET["type"])){ 
    	$type=$_GET["type"];
    	$meta_type_fb = '<meta property="og:type" content="'.$type.'" />';
    }
    if(isset($_GET["url"])){
    	$url=$_GET["url"]; 
    	$meta_url_fb = '<meta property="og:url" content="'.$url.'" />';
    	$meta_url_tw = '<meta name="twitter:url" content="'.$url.'" />';
    }
    //如果傳入video參數就生成video相關的meta
    if(isset($_GET["video"])){
    	$video=$_GET["video"]; 
    	$meta_video_fb = '<meta property="og:video" content="'.$video.'" /><meta property="og:video:type" content="video/mp4" /><meta property="og:video:width" content="487" />';
    	$meta_video_tw = '<meta name="twitter:player" content="'.$video.'" />';
    }
    if(isset($_GET["card"])){
    	$card=$_GET["card"]; 
    	$meta_card_tw = '<meta name="twitter:card" content="'.$card.'" />';
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <!-- 這段是移動端需要的meta設置,如果是pc請按需要做相關修改 -->
        <meta charset="utf-8">
        <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">
        <meta content="yes" name="apple-mobile-web-app-capable">
        <meta content="black" name="apple-mobile-web-app-status-bar-style">
        <meta content="telephone=no" name="format-detection">
        <meta content="email=yes" name="">
    	
    	<?php echo isset($image)?$meta_image_fb:'' ?>
    	<?php echo isset($url)?$meta_url_fb:'' ?>
    	<?php echo isset($video)?$meta_video_fb:'' ?>
    	<?php echo isset($title)?$meta_title_fb:'' ?>
    	<?php echo isset($type)?$meta_type_fb:'' ?>
        <meta property="og:description" content="<?php echo isset($description)?$description:'' ?>" />
    	
    	<?php echo isset($image)?$meta_image_tw:'' ?>
    	<?php echo isset($url)?$meta_url_tw:'' ?>
    	<?php echo isset($video)?$meta_video_tw:'' ?>
    	<?php echo isset($title)?$meta_title_tw:'' ?>
    	<?php echo isset($card)?$meta_card_tw:'<meta name="twitter:card" content="summary" />' ?>
    	<meta name="twitter:site:id" content="">
    	<meta name="twitter:title" content="<?php echo isset($title)?$title:'' ?>">
    	<meta name="twitter:site" content="">
    	<meta name="twitter:description" content="<?php echo isset($description)?$description:'' ?>" />
    	<meta name="description" content="<?php echo isset($description)?$description:'' ?>">
        <title><?php echo isset($title)?$title:'' ?></title>
        <script type="text/javascript">
            //如果希望用戶點擊了你的分享內容后跳轉到特定頁面
        	window.location.; 
        </script>
    </head>
    <body></body>
    </html>

    這樣,我們就可以利用上一節介紹的方法在你進行分享操作的頁面(比如說這個頁面包含了fb分享按鈕)寫好js(假設你把剛才的share.php文件部署在http://www.example.com/share.php):

    var shareTitle = encodeURIComponent('我的昵稱是:'+userName); //假設你要在標題中分享用戶名,需要先定義好userName
    var shareContent = encodeURIComponent('這里是要分享的內容balabala....'); //如果內容也不固定請傳入內容
    var shareUrl = 'http://www.example.com/share.php?'+'title='+shareTitle+'&description='+shareContent; //如果有其他需要請拼接,比如+"&image="+ encodeURIComponent(shareImageUrl);
    //facebook
    var shareToFbBtn = document.getElementById('fb-btn');
    shareToFbBtn.onclick = function(){
      FB.ui({
        method: 'share',
        href: shareUrl 
      }, function(response){
        //分享回調,可留空
      })
    }
    //twitter
    var shareToTwBtn = document.getElementById('tw-btn');
    shareToTwBtn.onclick = function(){
         window.open('http://twitter.com/home/?status='.concat(shareTitle).concat(' ').concat(encodeURIComponent(shareUrl))
    }

    到此就ok!

    最后幾句

    以上內容僅作補充,下面的內容可供各位參考:

    web怎么將動態內容分享到Facebook,Twitter等社交平臺?-Npcink
    web怎么將動態內容分享到Facebook,Twitter等社交平臺?-Npcink

    怎么添加QQ、微博、Twitter、Facebook的社交分享鏈接? - wordpress開發

    web怎么將動態內容分享到Facebook,Twitter等社交平臺?-Npcink
    web怎么將動態內容分享到Facebook,Twitter等社交平臺?-Npcink

    怎么將qrcode.js生成二維碼添加到網站上? - wordpress開發

    web怎么將動態內容分享到Facebook,Twitter等社交平臺?-Npcink
    web怎么將動態內容分享到Facebook,Twitter等社交平臺?-Npcink

    開放圖譜協議

    網站

    Homeland - 精美小巧的開源社區論壇系統

    2020-4-23 23:08:35

    網站

    開放圖譜協議

    2020-5-20 20:54:00

    ??
    Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
    無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
    0 條回復 A文章作者 M管理員
      暫無討論,說說你的看法吧
    ?
    個人中心
    購物車
    優惠劵
    今日簽到
    有新私信 私信列表
    搜索
    主站蜘蛛池模板: 亚洲欧美国产国产综合一区 | 国产一区在线电影| 亚洲韩国精品无码一区二区三区 | 国内自拍视频一区二区三区| 无码人妻AⅤ一区二区三区水密桃| 成人免费av一区二区三区| 蜜桃无码一区二区三区| 国模吧无码一区二区三区| 国产裸体舞一区二区三区| 中文字幕一区一区三区| 久久精品一区二区| 国产乱码伦精品一区二区三区麻豆 | 久久久91精品国产一区二区三区| 国产一区风间由美在线观看| 亚洲中文字幕一区精品自拍| 人妻夜夜爽天天爽爽一区| 国产亚洲综合一区柠檬导航| 一区二区三区www| 国产精品成人一区二区三区| 国产日韩精品视频一区二区三区| 水蜜桃av无码一区二区| 久久国产午夜一区二区福利| 久久国产精品最新一区| 久久精品一区二区三区日韩| 久久er99热精品一区二区| 日韩一区二区在线观看视频| 亚洲av无码一区二区三区网站| 国产一区二区高清在线播放| 久久精品国产一区二区电影| 久久se精品一区二区影院| 中文字幕一区二区三区有限公司| 国产一区二区精品久久岳| 色老板在线视频一区二区| 国产成人精品无码一区二区三区 | 成人精品视频一区二区三区尤物| 亚洲AV无码国产一区二区三区 | 一区二区三区日本电影| 精品福利一区二区三区精品国产第一国产综合精品 | 久久青青草原一区二区| 精品国产一区二区三区在线| 色系一区二区三区四区五区|