簡體   English   中英

AngularJS-Facebook分享者

[英]AngularJS - Facebook Sharer

我正在嘗試在AngularJS中使用Facebook Share。 下面是用戶單擊FB圖標時調用的我的函數。

    $scope.shareFB = function(){

        // Get configuration ID from service
        configuratorService.storeConfiguration($scope.modelCode, function(configID){
            // Use saved configuration id to create share link
            var base = $location.absUrl().replace($location.url(), '');
            var byoUrl = base + "/" + $scope.modelCode + "/resume/" + configID;
            console.log(byoUrl);
            var fbpopup = window.open("https://www.facebook.com/sharer/sharer.php?u=" + byoUrl, "pop", "width=600, height=400, scrollbars=no");
        });

    }

當我嘗試共享“ https://www.google.com/ ”之類的網址時,此功能可以正常工作

然后,Facebook Popup的URL =“ https://www.facebook.com/sharer/sharer.php?u=https://www.google.com/

當我使用上面的函數時:

byoUrl =“ http:// localhost:8000 /#/ 15K6 / resume / 9295316837

並且結果FB彈出窗口具有URL =“ https://www.facebook.com/15K6/resume/9295316837

為什么“ /sharer/sharer.php?= http:// localhost:8000 /#/ ”被切斷?

您甚至不應該嘗試共享本地主機URL,因為Facebook將永遠無法抓取它。 這很可能是您的URL被切斷的原因。 Facebook嘗試解決並抓取它,但它永遠找不到,因此它會盡最大努力在自身內進行重定向。 例:

https://www.facebook.com/sharer/sharer.php?u=http://localhost:8000/#/coke

嘗試將共享邏輯放入控制器中。 遵循這些原則。

  // Share posts $scope.fbShare = function(post){ FB.ui( { method: 'feed', name: post.title, link: 'http://www.cengkuru.com/'+post.slug, picture: '', caption: '', description: $filter('limitTo')($scope.post.body, 150), message: '' }); } 
 <div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({appId: 'YOUR_APP_ID', status: true, cookie: true, xfbml: true}); }; (function() { var e = document.createElement('script'); e.async = true; e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; document.getElementById('fb-root').appendChild(e); }()); </script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM