在官方Facebook应用程序安装的Facebook墙上发布

时间:2012-02-19 13:08:36

标签: android facebook authorization

应该启用我的Android应用程序的用户将消息发布到他的Facebook墙上。

我使用本教程作为我的开发基础: Link to tutorial

到目前为止,如果我没有安装官方的Facebook应用程序,它工作正常。因此,代码使用webview而不是SSO。

但是,如果我在同一台设备上安装Facebook应用程序: 在我的应用程序中按“发布到Facebook按钮”即可打开Facebook应用程序。但它关闭了immediatley并返回我的应用程序。

到目前为止我找到的唯一解决方法是使用Facebook.FORCE_DIALOG_AUTH:

facebook.authorize(this.activity, this.permissions,Facebook.FORCE_DIALOG_AUTH,new LoginDialogListener());

但这避免了SSO并且总是使用webview。有Android应用程序使用官方的Facebook应用程序和做SSO。但是我整个周末搜索了一个解决方案而没有弄清楚他们是怎么做的。

将android密钥散列输入到facebook也没有改变任何东西。

1 个答案:

答案 0 :(得分:0)

当facebook有自己的最新教程时,我不确定你为什么选择教程:http://developers.facebook.com/docs/mobile/android/build/

官方教程讨论了很多问题,包括签署它以便它也可以在开发阶段工作。它当然也谈到了身份验证和SSO,这就是SSO所需要的:

    Facebook facebook = new Facebook("YOUR_APP_ID");

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        facebook.authorize(this, new DialogListener() {
            @Override
            public void onComplete(Bundle values) {}

            @Override
            public void onFacebookError(FacebookError error) {}

            @Override
            public void onError(DialogError e) {}

            @Override
            public void onCancel() {}
        });
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        facebook.authorizeCallback(requestCode, resultCode, data);
    }

就是这样。 请阅读官方教程并按照他们的说明操作,它应该可以正常使用。