Java Facebook android shareDialog在打开后关闭
下面我在我的android应用程序中使用facebook sdk,为了测试,我在MainActivity中添加了以下代码:Java Facebook android shareDialog在打开后关闭,java,android,facebook,facebook-android-sdk,Java,Android,Facebook,Facebook Android Sdk,下面我在我的android应用程序中使用facebook sdk,为了测试,我在MainActivity中添加了以下代码: CallbackManager callbackManager; ShareDialog shareDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitial
CallbackManager callbackManager;
ShareDialog shareDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_main);
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
if (ShareDialog.canShow(ShareLinkContent.class)) {
ShareLinkContent linkContent = new ShareLinkContent.Builder()
.setContentTitle("Hello Facebook")
.setContentDescription(
"The 'Hello Facebook' sample showcases simple Facebook integration")
.setContentUrl(Uri.parse("http://developers.facebook.com/android"))
.build();
shareDialog.show(linkContent);
}
}
我在清单中添加了以下步骤:
<uses-permission android:name="android.permission.INTERNET"/>
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<provider android:authorities="com.facebook.app.FacebookContentProvider950310748347640"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:label="@string/app_name" />
当我测试shareDialog时,它突然弹出并自动关闭。问题在于我测试应用程序的手机,因为你似乎必须使用标记为开发者的facebook帐户登录facebook应用程序,你的应用程序是在该帐户下注册的,然后它将按预期工作,我假设在以后使用release ssh密钥时,它将在任何具有任何帐户的设备上工作。您需要将应用程序设置为“公共”
转到应用程序设置中的“状态和查看”部分,然后打开选项“是否要使此应用程序及其所有实时功能对公众可用?”您需要在show()方法上指定一种模式。在馈送之间,
本机、WEB和自动 最方便的是最后一个(自动),因为它直接从Facebook应用程序收集数据,所以你不必登录,但有时它会意外关闭。。 一般来说,我想说的是:
- FFED:1)通过谷歌浏览器工作,2)旧设计3)需要登录
- 本地:1)使用facebook应用程序发布帖子,无需额外登录
- WEB:与提要类似,但具有不同的UI
- 自动:(有时在启动时会立即关闭。)1)只使用facebook应用程序2)无需重新登录3)与任何其他共享一样共享 请仔细看看这里: 所以我建议使用WEB,因为它总是有效的: show(linkContent,shareDialog.Mode.WEB)
- 应用FB应用Id无效(有两个facebook应用,我不小心设置了错误的应用Id)
- 图像URL无效/存在自签名证书问题:
。我从og:Image
改为https
,效果不错http
- Web Url无效:
。url以www开头,正确的方式是og:Url
或http
,然后是https
www
- 我的情况不同。我遇到这个问题有三个原因:
希望这对其他人有所帮助。当您使用为其他应用程序创建的测试用户登录facebook时,可能会发生这种情况。这是因为该应用程序不是实时的,并且不向公众开放。为此,您首先需要有隐私策略链接。Facebook最近更新了他们的政策,要求几乎每个应用都在仪表板上设置隐私政策链接。您可以使用免费生成一个。希望有帮助 你在logcat中看到什么了吗?@MingLi我会修复它,然后作为答案发布。这与释放密钥哈希无关,更可能的是你没有将你的应用程序“公开”。转到应用程序设置中的“状态和查看”部分,然后打开选项“是否要使此应用程序及其所有实时功能可供公众使用?”@MingLi你是对的,发布你的答案,以便我可以接受。我将我的应用程序设为“公共”,但
ShareDialog
会自动关闭。有什么建议吗?我遇到了这个问题,但仍处于开发模式。这样做的后果是什么?