Facebook:使用共享对话框共享Play Store链接

3

我使用Facebook Android SDK中的分享对话框来分享链接。我的代码如下:

FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(this)
          .setName("My app name")
          .setCaption("A caption")
          .setDescription("My description...")
          .setLink("https://play.google.com/store/apps/details?id=com.company.myapp")
          .setPicture("http://link_to_picture")
          .build();

为了让用户重定向到我的应用程序的Play商店页面,我将该URL放入链接中。但在这种情况下,帖子不会显示我指定的信息(名称、标题、描述)。相反,它显示在Play商店中指定的应用程序名称,并带有“下载”字样(图片可以)。当我设置另一个链接时,就不会出现这个问题:帖子按预期显示名称、标题和描述。为什么我不能使用自己的文本与Play商店链接?
编辑:我尝试使用应用程序链接。因此,我创建了一个带有以下内容的应用程序链接对象:
curl https://graph.facebook.com/app/app_link_hosts \
-F access_token="APP_ACCESS_TOKEN" \
-F name="My app link" \
-F android=' [
    {
      "url" : "myapp://share/1234",
      "package" : "com.company.myapp",
      "app_name" : "My app",
    },
 ]' \
-F web=' {
    "should_fallback" : false,
  }'

我得到了这个URL:https://fb.me/494085890722766 现在,这篇文章看起来不错,但是当我的应用程序未安装时,从Facebook应用程序单击它会弹出一个选择器,建议在浏览器中打开链接或安装该应用程序,这并不是一个好的用户体验。

我们如何运行curl代码?什么是APP_ACCESS_TOKEN,以及在"myapp://share/1234"的位置应该写什么? - gprathour
要创建您的App Link对象,请按照此处描述的说明进行操作:https://developers.facebook.com/docs/applinks/hosting-api获取您的应用程序令牌,请阅读此文档:https://developers.facebook.com/docs/facebook-login/access-tokens#apptokensCurl是一个命令行工具,您可以使用它来进行HTTP POST请求。 - Superthib
@Superthib,一个快速的问题,你对生成的URL“fb.me/494085890722766”做了什么?文档似乎没有提到。 - Kaps
3个回答

0

使用以下代码替换您的链接

 .setLink("market://details?id=com.company.myapp")

查看此链接


这应该只能从Android应用程序中使用,而我的链接旨在在Facebook中显示。然而,我尝试了这个,但我从Facebook SDK得到了以下错误:“链接URL格式不正确”。 - Superthib
我明白了。那这个怎么样?https://developers.facebook.com/docs/applinks/android - Eran Goldin
我尝试了一下,效果好了一点:帖子看起来不错,但是从Facebook应用程序中点击它会显示一个对话框,建议在浏览器中打开链接或安装应用程序。第一个选择会重定向到Web上的Facebook登录页面,然后重定向到Play商店,而第二个则直接重定向到Play商店... 用户体验并不是很好,但可能还算可以接受。 - Superthib
你能告诉我你在使用哪些应用链接标签和一个示例 URL 吗?不应该弹出选择器。另外,你使用的 FB 应用程序版本是什么? - Ming Li
我更新了我的问题,并提供了应用程序链接细节。我的Facebook版本是10.0.0.28.27。 - Superthib

0

最终,我找到了一个使用应用链接的解决方法,详见此处:https://developers.facebook.com/docs/applinks/hosting-api

我创建了我的应用链接对象不带"-F web"参数,就像这样:

curl https://graph.facebook.com/app/app_link_hosts \
-F access_token="APP_ACCESS_TOKEN" \
-F name="My app link" \
-F android=' [
    {
      "url" : "myapp://share/1234",
      "package" : "com.company.myapp",
      "app_name" : "My app",
    },
 ]'

然而,我不明白为什么Facebook API的工作方式如此奇怪。这是一个简单问题的复杂解决方案。


我已经使用这种方法在 Facebook 上发布了我的应用程序,并且它正在运行(谢谢)。但是,如果应用程序已安装并且我在 Facebook 应用程序中点击共享的帖子,则会出现错误“打开此应用程序时出现问题”。我希望我的应用程序在点击共享的帖子时能够打开,有什么建议吗? - MiaN KhaLiD
没问题,我已经解决了。为了以后参考,这是我所做的: 我在 Android Manifest 中的活动标签中添加了以下代码: '<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="myapp" /> </intent-filter>' - MiaN KhaLiD
@superthib 这里的APP_ACCESS_TOKEN是什么,我们如何在Android中获取它。请指导我。我也有同样的问题。 - Raghu Mudem
在此处阅读有关APP_ACCESS_TOKEN的更多信息:https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens - Superthib

0
在我的情况下,我在Facebook开发者控制台中禁用了DeepLink,并且它运行良好。

这个选项在哪里? - GordonW

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接