2012-09-26 68 views
4

我正在使用(Appcelerator)鈦的Facebook API讓用戶登錄到他們的Facebook帳戶。在Android後常權當調用Facebook的窗口中打開一個頁面顯示它說授權:鈦 - Facebook授權() - 「發生錯誤」

An error occurred with MY-FB-APP-NAME. Please try later 
API Error Code: 110 
API Error Description: Invalid user id 
Error Message: Missing user cookie (to validate session user) 

關閉窗口,並重新開始通常可以解決該問題。然而,當這種情況發生時,可能有70%的時間(第一次在「會話」中調用授權時),這是一個很大的可用性問題。

有誰知道如何解決這個問題?

我正在使用Titanium 2.1.0並在Android 2.3.6設備上進行測試。 非常感謝

+0

我收到了同樣的問題。你是否已經在控制檯中使用** Ti.API.info(response)**修復了這個 – glo

回答

0

實際上由於Facebook的緩存存在問題。我們需要清除緩存,當您退出使用下面的代碼,它工作正常

Titanium.Facebook.appid = "XXXXXXXXXXXXXXXXXX"; 
Titanium.Facebook.permissions = ['publish_stream', 'read_stream']; 


    var fbButton = Ti.UI.createButton({ 
    top: 68, 
    width:290, 
    height:52, 
    backgroundImage:"images/login/facebook.png" 
}); 


fbButton.addEventListener('click', function() { 
if(Titanium.Facebook.loggedIn){ 
    Titanium.Facebook.logout() 
    return 
} 
Titanium.Facebook.authorize(); 

    }); 




Ti.Facebook.addEventListener('login', function(e) { 
if (e.success) { 
    win.close() 
} else if (e.error) { 
    alert(e.error); 
} else if (e.cancelled) { 
    alert("Canceled"); 
} 
}); 

    Titanium.Facebook.addEventListener('logout', function(e) { 
    var url = 'https://login.facebook.com'; 
    var client = Titanium.Network.createHTTPClient(); 
    client.clearCookies(url); 
}); 
0

試試這個代碼,其合金,並希望它會幫助你,否則我會檢查,讓你知道

指數.XML

<Alloy> 
<Window class="container"> 
    <LoginButton id="fbButton" ns="Alloy.Globals.Facebook"/> 
</Window> 
</Alloy> 

index.js

var fb = Alloy.Globals.Facebook; 
fb.appid = xxxxxxxxx; 
fb.permissions = ['publish_stream', 'create_event', 'email']; 
$.fbButton.style = fb.BUTTON_STYLE_WIDE; 
fb.addEventListener('login', function(e){ 
    if(e.success){ 
     fb.requestWithGraphPath('me', {}, 'GET', function(e) { 
      if (e.success) { 
       //alert(e.result); 
       var response = JSON.parse(e.result); 
       var email = response.email; 
       var name = response.name; 
       var gender = response.gender; 
       alert(name+' '+email+' '+gender); 
       alert('Logged in Successfully'); 
      } else if (e.error) { 
       alert(e.error); 
      } else { 
       alert('Unknown response'); 
      } 
     }); 
    } 
}); 

alloy.js

Alloy.Globals.Facebook = require('facebook'); 
+0

打印,並且查看你的應用程序從Facebook獲取和使用它所需的全部內容。 – Guts