【问题标题】:How do I connect my Spotify App to Facebook Connect?如何将我的 Spotify 应用程序连接到 Facebook Connect?
【发布时间】:2011-12-13 01:16:12
【问题描述】:

我正在开发一个 Spotify 应用程序,并且通过大量逆向工程和检查器检查 javascript 对象,一切都非常顺利。但是,我似乎无法让 Facebook 连接代码正常工作。

我尝试使用 Facebook Javascript FB.init(),然后使用 FB.login,但域是 sp://myidentifier,它不是 Facebook 的有效域。

我看到其他应用程序已设法使其正常工作,因此我确信它可以正常工作。最好的方法是,如果有任何内置方法可以做到这一点,因为 Spotify 一开始就与 Facebook 建立了良好的联系?

我非常感谢我能得到的任何帮助。从今天开始,除了我自己的应用程序之外,我无法检查任何其他应用程序,否则这些应用程序可能会让我朝着正确的方向前进。

【问题讨论】:

  • 我刚收到 Spotify 的评论:“我在文档中找不到这个,但可以试试:” sp.core.showAuthDialog(auth_url, close_url, callbacks)

标签: javascript facebook spotify


【解决方案1】:

这次我比 Stackoverflow 快 ;)

这是我最终得到的代码:

var appID = "1234567890";
var path = 'https://www.facebook.com/dialog/oauth?';
var successUrl = "https://www.facebook.com/connect/login_success.html";

var queryParams = [
    'client_id=' + appID,
    'redirect_uri=' + successUrl,
    'display=popup',
    'scope=email,read_stream',
    'response_type=token'
    ];

var query = queryParams.join('&');
var url = path + query;         

sp.core.showAuthDialog(url, successUrl, {                   
    onSuccess : function(response) {
        console.log('success', response);

        // response contains access token in hashstring
        var queryPart = response.split("#")[1];
        var queryStrings = queryPart.split("&");
        accessToken = queryStrings[0].split('=')[1];

        // we will use the token to get the rest of the user data                                   
        $.getJSON('https://graph.facebook.com/me?access_token=' + accessToken + '&callback=?', function(facebookUser){
            console.log('logged in user: ', facebookUser);                          

            // TODO: add logic to handle the user here


        });


    }
}); 

【讨论】:

  • 你是怎么想出来的?我没有看到 JavaScript API 参考中记录的任何 sp.core 函数:developer.spotify.com/download/spotify-apps-api/reference
  • 我从 Spotify 上的某个人那里得到了使用 sp.core.showAuthDialog 的提示,然后我使用 Inspector 控制台找出了其余部分。现在我在下面得到了官方答案和更新的文档,所以最好使用它,但它似乎还没有工作..
【解决方案2】:

请改用 auth 模块。 sp.core 是一个私有对象,不会通过在 App Finder 上提交应用的审批阶段。

var sp = getSpotifyApi(1);
var auth = sp.require('sp://import/scripts/api/auth');

auth.authenticateWithFacebook('MY_APP_ID', ['user_about_me', 'user_checkins'], {

    onSuccess : function(accessToken, ttl) {
        console.log("Success! Here's the access token: " + accessToken);
    },

    onFailure : function(error) {
        console.log("Authentication failed with error: " + error);
    },

    onComplete : function() { }
});

https://developer.spotify.com/technologies/apps/docs/beta/09321954e7.html

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
  • 1970-01-01
  • 2018-05-08
相关资源
最近更新 更多