【问题标题】:How do you get the OAuth token from the JavaScript API?如何从 JavaScript API 获取 OAuth 令牌?
【发布时间】:2012-05-06 15:33:57
【问题描述】:

我有一个页面应该让 cmets 形成一个 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 令牌?还是我做错了?

【问题讨论】:

    标签: javascript oauth facebook-javascript-sdk facebook-opengraph


    【解决方案1】:

    您缺少需要检查身份验证的部分。在status &amp; 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 {
    
       }
     });
    

    【讨论】:

    • 谢谢!链接和代码很有用。我仍在寻找“正确”的做事方式。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 2020-02-03
      • 1970-01-01
      • 2021-01-08
      • 2021-01-10
      • 2020-06-24
      • 2018-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多