Как подключить свое приложение Spotify к Facebook Connect? - PullRequest
1 голос
/ 13 декабря 2011

Я занимаюсь разработкой приложения Spotify, и все идет очень хорошо с большим количеством реверс-инжиниринга и проверки объектов javascript от инспектора. Однако мне не удается заставить работать код подключения Facebook.

Я пытался использовать JavaScript Javascript FB.init(), а затем FB.login, но домен sp: // myidentifier, который не является допустимым доменом для Facebook.

Я вижу, что другим приложениям удалось заставить это работать, поэтому я уверен, что это работает. Лучше всего было бы, если бы были встроенные методы для этого, так как Spotify хорошо подключен к Facebook, чтобы начать с?

Я действительно ценю любую помощь, которую могу получить. С сегодняшнего дня я не могу проверять любые другие приложения, кроме моих собственных, которые иначе могли бы направить меня в правильном направлении.

Ответы [ 2 ]

7 голосов
/ 14 декабря 2011

На этот раз я был быстрее, чем 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


        });


    }
}); 
5 голосов
/ 12 января 2012

Используйте вместо этого модуль авторизации. 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

...