2017-08-15 62 views
0

我正在将facebook SDK集成到我的应用程序中,但我对共享系统有点困惑。如何分享徽标+不可变的文字与Android的Facebook的Opengraph?

我的应用程序是教育性的,我希望我的用户能够吹嘘为“我在测试n°xx上有100/100”,并在Facebook上分享,就像您可以使用Runtastic一样。

对于那些谁也不会知道,这里是透过Runtastic股样子(例子是法语,但你的想法):

runtastic shares example

由于我的应用程序是不是游戏,这对于Open Graph Stories来说是不可能的(对于educationnal没有类型),并且现在不推荐Custom Open Graph Stories,所以没有任何对象是相关的,我不能再创建我自己的。

知道了,我该如何制作一个看起来像这样的ShareDialog,旁边有一个大徽标和一个不可修改的文本,链接到一个网站?

Sharing documentation告诉了所有关于共享一件事情的事情,但是当你想要将它与文本结合起来时,它并不是真的有用。

最接近我想要的就是使用ShareLinkContent以及我的应用程序在playstore上的链接和类似的报价。它可以做到这一点,但它看起来更像是用户只是分享一个链接(这是真的),而不仅仅是吹嘘成就。

我也可以分享作为照片的标志,并把吹牛作为标题,但然后标志会太大,标题必须是可修改的,所以每个人都可以告诉他得到100/100。

注意:法文文本的意思是“[此人]在3小时6分钟内终止了27.94公里的跑步,并使用Runtastic应用程序保存”。我希望我的应用能够显示“[此人]在2016年会话中获得了100/120,并且保存了MyAppName应用”。

NB2:我没有得到任何服务器,只需一个链接Play商店中,一个Facebook应用程序和一个Facebook页面

+0

好吧,我用SharePhoto创建的对象这种类型,来自bi tmap,然后使用.PutPhoto()函数将图片添加到OpenGraphObject中,并将其与像标题/描述一样的其他内容如.putString(“og:title”,myTitle)&.putString(“og:description”,myDescription)会帮助你。我有类似的问题,但对我来说,我不能改变冗长(只适用于“读一本书”.. idk为什么) –

+0

你可以把整个代码放在一个答案?这听起来很不错,但我不确定我应该创建哪个对象(因为我认为你需要一个动作来使用OpenGraphObject) –

+0

是的,让我开始工作,我会发布我的代码。 –

回答

0

你去那里...

这是我的功能,这将使一个物体标题&的描述,也有来自远程URL的图片(但你需要创建一个画面的位图,对于我使用滑翔

private static void shareFacebook(Context context, Bitmap picture, String title, String videoURL, String description) { 
    SharePhoto photo = new SharePhoto.Builder() 
      .setBitmap(picture) 
      .setCaption(context.getResources().getString(R.string.floh_site)) 
      .setUserGenerated(true) 
      .build(); 

    ShareOpenGraphObject object = new ShareOpenGraphObject.Builder() 
      .putString("og:type", "books.book") 
      .putString("og:url", videoURL) 
      .putString("og:title", title) 
      .putString("og:description", description) 
      .putPhoto("og:image", photo) 
      .putString("books:isbn", title) 
      .build(); 

    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder() 
      .setActionType("books.wants_to_read") 
      .putObject("book", object) 
      .build(); 

    ShareOpenGraphContent c = new ShareOpenGraphContent.Builder() 
      .setPreviewPropertyName("book") 
      .setAction(action) 
      .build(); 

    ShareDialog.show(FlohApp.getTopActivity(), c); 
} 
+0

谢谢,但正如我担心的那样,您必须指定'og:type'。我的应用程序是教育的,你可以通过测试。我可以找到适合教育的文档没有类型... –

+0

那么,你不想指定一个动作?或者你不想为对象指定一个类型?你能解释一下你想分享的样子吗? –

+0

正如我在帖子的标题和示例图片中所说的:在不可变文本旁边的徽标 –

相关问题