如何从JavaScript API获取OAuth令牌?

时间:2012-05-06 15:33:57

标签: javascript oauth facebook-javascript-sdk opengraph

我有一个页面应该从Facebook对象获取评论并使用JavaScript将它们发布到页面上,但是当用户登录时,我无法终身了解如何获取OAuth令牌。这是我的页面。

<div id="fb-root"></div>
<script>
    window.fbAsyncInit = function () {
        FB.init({
            appId: 'myrealappid',
            status: true,
            cookie: true,
            xfbml: true,
            oauth: true,
        });
    };
    (function (d) {
        var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; }
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        d.getElementsByTagName('head')[0].appendChild(js);
    }(document));
    function getComments(objectid) {
//I need to append the OAuth token to this graph request
        var commentUri = "https://graph.facebook.com/" + objectid + "/comments";
        return $.getJSON(commentUri, function (json) {
            var html = "<ul>";
            $.each(json.data, function (i, fb) {
                html += "<li>" + fb.message + "</li>";
            });
            html += "</ul>"
        });
        $('.comments').html(html);
    };
    $(document).ready(function () {
        getTripComments(data.WallPostId);
    });
</script>
<div id="pageLogo">
    <img src="/images/page_logo.png" alt="Digital Mementos" />
</div>
<div id="container">
    <div class="fb-login-button">Login with Facebook to Comment</div>
    <div id="comments">
    </div>
</div>

查看“我需要将OAuth令牌附加到此图形请求”的位置?是的,我需要那样做。如何获取OAuth令牌?或者我是不是错了?

2 个答案:

答案 0 :(得分:1)

您缺少需要检查身份验证的部分。在status & sessions.

下阅读更多here

如果您检查以下内容,则不需要Fisch声明的访问令牌:

 FB.login(function(response) {
   if (response.authResponse) {
     FB.api('/me', function(response) {

     });
   } else {

   }
 });

如果仍然需要访问令牌,您可以这样做:

FB.login(function(response) {
   if (response.authResponse) {
     var access_token = response.authResponse.accessToken;

   } else {

   }
 });

答案 1 :(得分:0)

使用Facebook的JavaScript方法FB.api,而不是向完全限定的端点发出请求。使用此方法时,您不必担心令牌。