Android FacebookDialog:我需要实现登录吗?

Android FacebookDialog:我需要实现登录吗?,android,facebook,Android,Facebook,我已经在我的应用程序中实现了一个FacebookDialog,它在大多数情况下都能正常工作 if(FacebookDialog.canPresentShareDialog(activity,FacebookDialog.ShareDialogFeature.SHARE_DIALOG)) { FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(activity)

我已经在我的应用程序中实现了一个FacebookDialog,它在大多数情况下都能正常工作

 if(FacebookDialog.canPresentShareDialog(activity,FacebookDialog.ShareDialogFeature.SHARE_DIALOG)) {
            FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(activity)
                    .setLink(activity.getString(R.string.link_to_app_store))
                    .build();

            shareDialog.present();
        }
然而,我注意到一些Facebook帐户无法使用它,因为这些帐户在其权限页面中没有链接到我的应用程序。我不知道情况如何。我所知道的是,上面的代码将导致用户在没有会话时被定向到本机应用进行登录。但是,当用户具有活动会话但未授予应用程序的基本权限时,它不会请求应用程序权限

这会造成一种情况,即应用程序暂时呈现,但由于应用程序没有发布权限而隐藏


那么,我的问题是,我是否需要实现登录,或者是否有办法处理用户未授予我的应用权限的情况?

经过进一步调查,这是由于Facebook返回了一个错误。查看日志中的错误说明“找不到应用程序名”。奇怪的是,这只发生在某些用户帐户上,而不是整个帐户


修复?通过
ShareDialog

上的
.setApplicationName
设置应用程序名称您的应用程序id是测试id还是活动id?否,您无需实现登录即可使对话框正常工作。@MingLi您的来源是什么,以及如何处理用户未授予您的应用权限的情况?来源:我使用SDK并编写了一些共享对话框功能。使用共享对话框不需要登录。如果已安装,它应该从Facebook应用程序启动共享对话框(否则canPresentShareDialog将返回false)。如果你看到一个闪光,然后什么都没有,那么还有其他一些错误(比如你的应用程序没有公开)。@MingLi发现这是另一个问题。愚蠢的是我们必须那样做。此外,它应该在指南中。