我正在开发一个Spotify应用程序,一切都很顺利,有很多逆向工程,并检查来自检查器的javascript对象。但是,我似乎无法让Facebook连接代码正常工作。
我尝试过使用Facebook Javascript FB.init()
然后使用FB.login但域名是sp:// myidentifier,这不是Facebook的有效域名。
我看到其他应用已经设法让这个工作,所以我相信它的工作原理。最好的方法是,如果有任何内置的方法可以做到这一点,因为Spotify与Facebook有良好的联系以便开始吗?
我非常感谢我能得到的任何帮助。从今天开始,我无法检查除我自己以外的任何其他应用程序,否则这些应用程序可能会让我朝着正确的方向前进。
答案 0 :(得分:7)
这次我比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
});
}
});
答案 1 :(得分:5)
请改用身份验证模块。 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