Titanium Facebook Dialog不会出现

时间:2013-08-16 18:33:18

标签: titanium titanium-mobile titanium-modules

我正在开发“在facebook上分享”按钮。

但是有一个问题,Facebook对话框不会提示给用户。

我尝试过钛提供的样品:

function facebook(){

    var fb = require('facebook');

    var data = {
        link : "http://www.appcelerator.com",
        name : "Appcelerator Titanium Mobile",
        message : "Checkout this cool open source project for creating apps",
        caption : "Appcelerator Titanium Mobile",
        picture : "http://developer.appcelerator.com/assets/img/DEV_titmobile_image.png",
        description : "You've got the ideas, now you've got the power."
    };

    fb.dialog("feed", data, function(e) {

            var toast = Ti.UI.createNotification({
            message:"Default",
            duration: Ti.UI.NOTIFICATION_DURATION_LONG
        });

            if(e.success && e.result) 
                toast.message = "Success! New Post ID: " + e.result;
            else {
                if(e.error) 
                        toast.message = e.error;
                else 
                    toast.message = "User canceled dialog.";
            }
        toast.show();
    });
}

正确调用该函数,但没有任何内容出现。

有人知道为什么吗?也许权限?但我已经读过,对话框不是必需的权限!

感谢所有

2 个答案:

答案 0 :(得分:0)

试试这个:

var fb = require('facebook');
fb.appid = FACEBOOK_APP_ID;
fb.permissions = ['publish_stream']; // Permissions your app needs
fb.forceDialogAuth = true;
fb.addEventListener('login', function(e) {
    if (e.success) {
        alert('Logged In');
    } else if (e.error) {
        alert(e.error);
    } else if (e.cancelled) {
        alert("Canceled");
    }
});
fb.authorize();

答案 1 :(得分:0)

我自己解决了! 即使Facebook Dialog不需要Auth(),它也需要带有AppID的init。

var fb = require('facebook');
fb.appid = your_app_id_number;

这很好用。