如何在'.js'文件中使用facebook publish stream方法

时间:2011-08-30 11:36:31

标签: javascript facebook facebook-javascript-sdk

我正在使用'.php'文件中的波纹管代码来发布流。

<script src="http://connect.facebook.net/en_US/all.js"></script>
    <script>
      FB.init( 
      {
        appId  : 'MY_APP_ID',
        status : true, // check login status
        cookie : true, // enable cookies to allow the server to access the session
        xfbml  : true  // parse XFBML
      });

      var publish = {
        method: 'stream.publish',
        message: '',
        picture : 'http://www.associationregion.org/images/stories/slides/Upload.png',
        link : 'http://apps.facebook.com/puzzlegts/',
        name: 'Go to image',
        caption: 'taged you in a photo',
        description: 'test 2',
        actions : { name : 'Go to app', link : 'http://apps.facebook.com/puzzlegts/'}
        };
        FB.api('/me/feed', 'POST', publish, function(response) {alert("posted");});

    </script>

现在我有一个名为'publish.js'的javascript文件,我想将发布流方法添加到我的'publish.js'文件中的函数中。任何人都可以告诉我该怎么做?
问题出现,因为我不能在'.js'文件中使用'<script>'标签。因此我不能包含波纹管代码。

<script src="http://connect.facebook.net/en_US/all.js"></script>  

或者任何人都可以发布'.js'文件的合适代码

2 个答案:

答案 0 :(得分:0)

将此添加到您的页面

<script src="publish.js"></script>

并将其添加到您的publish.js

  FB.init( 
  {
    appId  : '266000346762008',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });

  var publish = {
    method: 'stream.publish',
    message: '',
    picture : 'http://www.associationregion.org/images/stories/slides/Upload.png',
    link : 'http://apps.facebook.com/puzzlegts/',
    name: 'Go to image',
    caption: 'taged you in a photo',
    description: 'test 2',
    actions : { name : 'Go to app', link : 'http://apps.facebook.com/puzzlegts/'}
    };
    FB.api('/me/feed', 'POST', publish, function(response) {alert("posted");});

(没有脚本标签)

答案 1 :(得分:0)

您可以通过编程方式添加它,或者只使用asynchronous loading

window.fbAsyncInit = function() {
    FB.init({
        appId  : 'MY_APP_ID',
        status : true, // check login status
        cookie : true, // enable cookies to allow the server to access the session
        xfbml  : true  // parse XFBML
    });
    var publish = {
        method: 'stream.publish',
        message: '',
        picture : 'http://www.associationregion.org/images/stories/slides/Upload.png',
        link : 'http://apps.facebook.com/puzzlegts/',
        name: 'Go to image',
        caption: 'taged you in a photo',
        description: 'test 2',
        actions : { name : 'Go to app', link : 'http://apps.facebook.com/puzzlegts/'}
    };
    FB.api('/me/feed', 'POST', publish, function(response) {alert("posted");});
};
(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);
}());

注意:

  • 您需要确保您的标记中包含fb-root div
  • 仅在库all.js完全加载
  • 后才会触发