首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >An Facebook authorize() -“发生错误”

An Facebook authorize() -“发生错误”
EN

Stack Overflow用户
提问于 2012-09-26 23:18:29
回答 2查看 1.4K关注 0票数 4

我正在使用(Appcelerator) Titanium的Facebook API让用户登录到他们的facebook帐户。在Android上,通常在调用authorize之后,当facebook窗口打开时,会显示一个页面,上面写着:

代码语言:javascript
复制
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%的时间(当在“会话”中第一次调用authorize时),这是一个很大的可用性问题。

有人知道怎么解决这个问题吗?

我使用的是Titany2.1.0,并在Android 2.3.6设备上进行了测试。非常感谢

EN

回答 2

Stack Overflow用户

发布于 2013-03-02 00:33:22

实际上,这个问题之所以存在,是因为facebook的缓存。我们需要清除缓存,当您注销时使用下面的代码它工作正常

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2013-10-01 15:32:56

尝试这个代码,它是合金的,希望它能帮助你,否则我会检查并让你知道

index.xml

代码语言:javascript
复制
<Alloy>
<Window class="container">
    <LoginButton id="fbButton" ns="Alloy.Globals.Facebook"/>
</Window>
</Alloy>

index.js

代码语言:javascript
复制
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

代码语言:javascript
复制
Alloy.Globals.Facebook = require('facebook');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12605031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档