2011-12-13 255 views
1

我正在開發一個Spotify應用程序,一切都很順利,大量的逆向工程和檢查員檢查javascript對象。但是,我似乎無法設法使Facebook連接代碼正常工作。如何將Spotify應用程序連接到Facebook Connect?

我已經嘗試使用Facebook Javascript FB.init(),然後使用FB.login,但域名是sp:// myidentifier,它不是Facebook的有效域。

我看到其他應用程序已設法使這個工作,所以我相信它的工作原理。最好的方法是,如果有任何內置的方法可以做到這一點,因爲Spotify與Facebook有很好的聯繫,因此開始使用它?

我真的很感謝任何幫助,我可以得到。從今天起,我無法檢查除我自己以外的任何其他應用程序,否則這些應用程序可能會使我處於正確的方向。

+0

我剛剛從Spotify的評論: 「我不能在該文檔中發現這一點,但你可以試試:」 sp.core.showAuthDialog(auth_url,CLOSE_URL,回調) –

回答

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

+0

對不起,我的Spotify版本(0.8.0.1035)找不到驗證模塊。 _error:無法讀取「sp://import/scripts/api/auth.js」_ –

+0

我發現此鏈接來自另一個線程,詢問相同的問題:http://developer.spotify.com/blog/archives/2012/01/12 /新Spotify的-API預覽 - 構建 - 可用/ –

7

我比這個#1時間快;)

這是我結束了代碼:

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 


     }); 


    } 
}); 
+0

你是怎麼解決這個問題的?我沒有看到JavaScript API參考中記錄的任何sp.core功能:http://developer.spotify.com/download/spotify-apps-api/reference/ –

+0

我從Spotify上的某個人那裏獲得了要使用的提示sp.core.showAuthDialog,然後使用Inspector控制檯找出其餘部分。現在我得到了一個正式的答案和更新下面的文檔,所以它可能是最好的使用它,但它似乎還沒有工作。 –

+0

下面使用@pompas官方解決方案,它的作品就像一個魅力。 –